国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS中設置view圓角化的四種方法示例

2020-02-19 15:45:45
字體:
來源:轉載
供稿:網友

我們在開發程序后,都要對這個功能進行優化,優化過程中可能會遇到這樣的問題,下面不跟大家多說了,跟著武林技術頻道小編的步伐帶大家學習iOS中設置view圓角化的四種方法示例吧!

設置圓角目前知道的有四種方法:

???? 1、通過shapeLayer設置

???? 2、通過view的layer設置

???? 3、通過BezierPath設置

???? 4、通過貼圖的方式設置

1、shapeLayer的實現

通過bezizerpath設置一個路徑,加到目標視圖的layer上。代碼如下:

// 創建一個view UIView *showView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; [self.view addSubview:showView]; showView.backgroundColor = [UIColor whiteColor]; showView.alpha = 0.5;  // 貝塞爾曲線(創建一個圓) UIBezierPath *path = [UIBezierPath  bezierPathWithArcCenter:CGPointMake(100 / 2.f, 100 / 2.f)              radius:100 / 2.f              startAngle:0               endAngle:M_PI * 2              clockwise:YES];   CAShapeLayer *layer = [CAShapeLayer layer];  layer.frame = showView.bounds;  layer.path = path.CGPath;  [showView.layer addSublayer:layer];

2、view的layer的實現

通過view的layer直接設置的方式,是所有的方法中最簡單的,代碼如下:

 - (UIImageView *)avatarImage {   if (!_avatarImage) {     _avatarImage = [[UIImageView alloc] initWithFrame:CGRectMake(20,10, avatarDiameter, avatarDiameter)];  _avatarImage.backgroundColor = [UIColor grayColor];  _avatarImage.contentMode = UIViewContentModeScaleAspectFit;  _avatarImage.layer.cornerRadius = avatarDiameter/2.0;  _avatarImage.layer.masksToBounds = YES;  [_avatarImage setImage:[UIImage imageNamed:@"test.jpg"]];  } return _avatarImage;}

3、BezierPath的實現

BezierPath的實現方式繼承UIView,自己實現一個customview,代碼如下。

- (instancetype)initWithFrame:(CGRect)frame {  if (self = [super initWithFrame:frame]) {   } return self;}- (void)drawRect:(CGRect)rect {   // Drawing code  CGRect bounds = self.bounds; [[UIColor whiteColor] set]; UIRectFill(bounds); [[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:CGRectGetWidth(bounds)/2.0] addClip]; [self.image drawInRect:bounds];} 

4、貼圖的實現

貼圖的方式是使用一個中間是圓形鏤空的圖覆蓋在需要圓角化的圖片的上方。代碼如下:

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {   if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {     [self.contentView addSubview:self.avatarImage];   [self.contentView addSubview:self.maskImage];  }  return self; }- (UIImageView *)avatarImage {   if (!_avatarImage) {     _avatarImage = [[UIImageView alloc] initWithFrame:CGRectMake(20,10, avatarDiameter, avatarDiameter)];  _avatarImage.backgroundColor = [UIColor grayColor];  _avatarImage.contentMode = UIViewContentModeScaleAspectFit;   [_avatarImage setImage:[UIImage imageNamed:@"test.jpg"]];  }  return _avatarImage; } //中心鏤空的圖 - (UIImageView *)maskImage {    if (!_maskImage) {     _maskImage = [[UIImageView alloc] initWithFrame:CGRectMake(20,10, avatarDiameter, avatarDiameter)];   _maskImage.contentMode = UIViewContentModeScaleAspectFit;   [_maskImage setImage:[UIImage imageNamed:@"corner_circle.png"]];   }  return _maskImage;} 

如果大家有什么好的方法,希望推薦給我。

今天為大家介紹的iOS中設置view圓角化的四種方法示例,大家是否有在本文中受益呢?更多的專業知識,盡在js.Vevb.com。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉中市| 东乌| 濉溪县| 八宿县| 兴和县| 玛曲县| 阜康市| 陈巴尔虎旗| 武宣县| 城口县| 金湖县| 武汉市| 普兰店市| 文成县| 阜城县| 临邑县| 定安县| 峨山| 泽库县| 淳化县| 平塘县| 昌邑市| 瑞金市| 怀来县| 晋州市| 安义县| 乌兰县| 五峰| 凤城市| 周口市| 称多县| 贵南县| 神木县| 陇南市| 土默特右旗| 陆丰市| 穆棱市| 高邑县| 阳朔县| 柏乡县| 武乡县|