需要實(shí)現(xiàn)一個控件周邊有陰影的效果,由于以前沒弄過,所以記錄一下
古田網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
為了實(shí)現(xiàn)四周的效果,必須要設(shè)置陰影的路徑,不然實(shí)現(xiàn)不了四周的效果
在iOS中常見的特性中有有陰影,下面我將詳細(xì)闡述一下關(guān)于視圖陰影的故事
iOS中陰影的屬性是 shadowOpacity 它的默認(rèn)值是0,只要設(shè)置一個大于0的值就會在視圖的上面出現(xiàn)陰影的效果,但它的浮點(diǎn)值在0~1之間.
但你會發(fā)現(xiàn)其陰影的特點(diǎn)是上面陰影效果最明顯,左右也有陰影效果,但是在下面是沒有的陰影的,因?yàn)橄到y(tǒng)在設(shè)置陰影效果時設(shè)置了默認(rèn)的陰影偏移量,你可以通過另一個屬性 shadowOffset 來改變陰影的偏移效果,它的類型值是CGSize類型(當(dāng) shadowOffset 的值設(shè)為 CGSizeMake(0, 0) 時,四周就都會出現(xiàn)陰影)
改變陰影效果的屬性還有一個是 shadowRadius , 它的效果是陰影的半徑,其值越大,陰影效果就越明顯.
但是當(dāng)我們在給 imageView 添加陰影效果時也會有效果,但是在當(dāng)我們在設(shè)置視圖的圓角時,我們會發(fā)現(xiàn)陰影效果就消失了,這很讓人頭疼,下面我將提供一個解決辦法,其實(shí)很簡單,只要在 ImageView 下面鋪一個 view 就可以解決問題了,但要注意的是下面的 view 不要給顏色,要一個透明view,同時設(shè)置陰影效果,并且不設(shè)置圓角, ImageView 不用設(shè)置陰影,但要設(shè)置圓角,這樣就可以解決問題了.
button 換成需要添加陰影的控件
button.layer.shadowColor = [UIColor blackColor].CGColor;//陰影顏色
button.layer.shadowOffset = CGSizeMake(1, 1);//偏移距離
button.layer.shadowOpacity = 0.5;//不透明度
button.layer.shadowRadius = 5.0;//半徑
開發(fā)中,設(shè)置view等的陰影不成功的原因有以下幾種:
1.設(shè)置view的clipsToBounds為NO;
2.view的backgroundColor為clearColor
3.layer的shadowOpacity未設(shè)置
- (void)addShadowColor {
//添加顯示
UIImage?*image?=?[UIImage?imageNamed:@"小可愛"]; //IMG_2683.jpg
UIImageView?*imageView?=?[[UIImageView?alloc] initWithImage:image];
imageView.contentMode = UIViewContentModeScaleAspectFill;
imageView.frame?=?CGRectMake(50,?100,?200,?300);
//添加邊框
//? ? CALayer?*layer?=?[imageView?layer];
//
//? ? layer.borderColor?=?[[UIColor redColor]?CGColor];
//
//? ? layer.borderWidth?=?0.5f;
//添加四個邊陰影
//? ? imageView.layer.shadowColor?=?[UIColor?redColor].CGColor;//陰影顏色
//? ? imageView.layer.shadowOffset?=?CGSizeMake(0,?0);//偏移距離
//? ? imageView.layer.shadowOpacity?=?0.5;//不透明度
//? ? imageView.layer.shadowRadius?=?10.0;//半徑
//添加兩個邊陰影
imageView.layer.shadowColor?=?[UIColor?blueColor].CGColor;//陰影顏色
imageView.layer.shadowOffset?=?CGSizeMake(4,?4);//偏移距離
imageView.layer.shadowOpacity?=?0.5;//不透明度
imageView.layer.shadowRadius?=?2.0;//半徑
[self.view?addSubview:imageView];?
}