美文网首页
iOS指定视图圆角与Masonry的冲突

iOS指定视图圆角与Masonry的冲突

作者: 始白 | 来源:发表于2019-03-28 17:22 被阅读0次
设置固定圆角,iOS11之后有更简单的方法(适配如下)
特别注意,在iOS10版本下,UITableview通过Masonry约束后直接用下面的方法设置圆角,结果UITableview不显示,可以直接frame赋值
/**
 圆角
 @param radius 圆角尺寸
 @param maskCorner 圆角位置列如:kCALayerMinXMinYCorner|kCALayerMaxXMinYCorner
 @param corner 圆角位置列如:UIRectCornerTopRight|UIRectCornerTopLeft
 */
- (void)acs_radiusWithRadius:(CGFloat)radius maskedCorner:(CACornerMask)maskCorner corner:(UIRectCorner)corner {
    if (@available(iOS 11.0, *)) {
        self.layer.cornerRadius = radius;
        self.layer.maskedCorners = maskCorner;
    } else {
        UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:corner cornerRadii:CGSizeMake(radius, radius)];
        CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
        maskLayer.frame = self.bounds;
        maskLayer.path = path.CGPath;
        self.layer.mask = maskLayer;
    }
}
UIRectCorner的定义如下:
typedef NS_OPTIONS(NSUInteger, UIRectCorner) {
    UIRectCornerTopLeft     = 1 <&lt; 0,
    UIRectCornerTopRight    = 1 <&lt; 1,
    UIRectCornerBottomLeft  = 1 <&lt; 2,
    UIRectCornerBottomRight = 1 <&lt; 3,
    UIRectCornerAllCorners  = ~0UL
};
CACornerMask的定义如下:
typedef NS_OPTIONS (NSUInteger, CACornerMask)
{
  kCALayerMinXMinYCorner = 1U << 0, // 左上
  kCALayerMaxXMinYCorner = 1U << 1, 右上
  kCALayerMinXMaxYCorner = 1U << 2, // 左下
  kCALayerMaxXMaxYCorner = 1U << 3, // 右下
};

相关文章

  • iOS指定视图圆角与Masonry的冲突

    设置固定圆角,iOS11之后有更简单的方法(适配如下) 特别注意,在iOS10版本下,UITableview通过M...

  • iOS Masonry布局(四) - 视图设置圆角

    视图设置任意圆角 Masonry布局视图设置圆角 若使用Masonry布局的视图设置后发现,设置的圆角不起作用。这...

  • iOS Masonry - 视图设置圆角

    视图设置任意圆角 Masonry布局视图设置圆角 若使用Masonry布局的视图设置后发现,设置的圆角不起作用。这...

  • iOS - 指定视图的圆角个数

    平常设置视图的圆角最普遍的就是设置四个角的,方法也就是一句代码解决: 但有时需求会是指定某个,或者特定哪几个角设置...

  • iOS视图部分圆角

    我们都知道iOS视图圆角 但是某些需求上可能我们只需要指定View的某几个角为圆角例如: 图中框出的橘色部分我们只...

  • 视图指定位置圆角

    mark:iOS开发之指定UIView的某几个角为圆角ios中设置view固定方向的圆角 iOS View 指定圆...

  • 视图指定圆角

    坑: 对比: 控制器 viewDidLoad viewDidLayoutSubviews 视图 awakeFro...

  • 第十八章、拓展一面试问题积累

    一、Masonry设置等高、等宽 子视图等高/等宽练习 等高 等宽 更多详情iOS Masonry详解 二、iOS...

  • iOS设置圆角的四种方法

    原文iOS设置圆角的四种方法iOS设置圆角的方法及指定圆角的位置 一、设置CALayer的cornerRadius...

  • iOS指定任意角的圆角

    借助CAShapeLayer可以实现指定视图任意角的圆角,步骤如下 设置视图的宿主图层为CAShapeLayer ...

网友评论

      本文标题:iOS指定视图圆角与Masonry的冲突

      本文链接:https://www.haomeiwen.com/subject/ickhyqtx.html