UIKit - UIView
2020-04-21 本文已影响0人
ienos
给 UIView 设置图片
UIImage *image = [UIImage imageNamed:@"playing"];
_layerView.layer.contents = (__bridge id)image.CGImage;
_layerView.layer.contentsCenter = CGRectMake(0.25, 0.25, 0.5, 0.5);
//同样可以设置显示的图片范围
//不过此处略有不同,这里的四个值均为0-1之间;对应的依然是写x,y,widt,height
自定义视图 为什么要在 initWithFrame: 方法初始化m而不是在 init 方法?
因为使用纯代码的方式创建自定义类,在以后使用的时候可能使用 init 方法创建,也有可能使用 initWithFrame:方法创建,但是无论哪种方式,最后都会调用到 initWithFrame: 方法。在这个方法中创建子控件,可以保证无论哪种方式都可以成功创建。
设置圆角并添加阴影效果
给要添加圆角阴影的视图 view 加多一个父视图 shadowView
/* content view */
view.layer.cornerRadius = 75; // 设置imageView的圆角
view.layer.masksToBounds = YES;
/* shadow super view */
self.shadowView.backgroundColor = [UIColor clearColor];
[self.shadowView.layer setShadowOffset:CGSizeMake(0, 0)]; // 偏移量
[self.shadowView.layer setShadowColor:[RGBAColor(85, 85, 85, 0.4) CGColor]];// 阴影颜色
[self.shadowView.layer setShadowOpacity:1.0f]; // 透明度
self.shadowView.layer.shadowRadius = 9.0; // 半径 默认 3
self.shadowView.layer.masksToBounds = NO;
自定义切圆角
- (void)customcutCircularWithView:(UIView *)view byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii {
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.layer.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(10.0f, 10.0f)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = view.layer.bounds;
maskLayer.path = maskPath.CGPath;
view.layer.mask = maskLayer;
}