UIKit

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;
}
上一篇 下一篇

猜你喜欢

热点阅读