美文网首页
切指定圆角以及xib自定义view出现的问题

切指定圆角以及xib自定义view出现的问题

作者: 请叫我魔法师 | 来源:发表于2017-08-15 20:46 被阅读0次
  1. 如果切4个圆角可以直接用view.layer.cornerRaidus这个属性,需要设置layer.maskToBounds = YES;
    一把没问题,如果考虑离屏渲染啥的,图片又大又多的话可能造成卡顿。

  2. 可以用UIBezierPath和CAShapeLayer的组合定义mask来达到切圆角的目的,并且而可以指定其中的任意圆角。如下,指定了切左上和右上2个角。
    如下,

UIBezierPath *cardImgPath = [UIBezierPath bezierPathWithRoundedRect: self.cardImgView.bounds byRoundingCorners:UIRectCornerTopRight | UIRectCornerTopLeft cornerRadii:CGSizeMake(5, 5)];
CAShapeLayer *cardLayer = [[CAShapeLayer alloc] init];
cardLayer.path = cardImgPath.CGPath;
self.cardImgView.layer.mask = cardLayer;
  1. 今天用xib自定义了一个view,像往常一样,用上面的代码去切圆角,发现无论设置指定的圆角,它只显示左上角被切了,其余的角没变化。
    通过打印xib中子控件的坐标,发现size都不正常,没和屏幕适配。而且就算把size设置小一些还是不起作用。
    经过思考xib和控制器的关系,在xib显示到控制器显示的时候,其实已经存在了,xib的子控件大小还没和屏幕适配。当设置了xib的frame,通过autoLayout子控件才显示正常。这才看起来正常了。
    所以,在xib加载的时候它需要自动调整才能适配屏幕,autoLayout的时候去切圆角,frame不是确定的,它就没法去切其他的角了。
    所以,指定确定frame就可以了。

经过上面的一波分析,解决办法就是直接指定rect,不使用view.bounds,如下:

UIBezierPath *cardImgPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, size.width, size.height) byRoundingCorners:UIRectCornerTopRight | UIRectCornerTopLeft cornerRadii:CGSizeMake(5, 5)];

PS:这个size是在设置xib的frame后计算的。根据自己的实际需求计算size。

相关文章

  • 切指定圆角以及xib自定义view出现的问题

    如果切4个圆角可以直接用view.layer.cornerRaidus这个属性,需要设置layer.maskToB...

  • iOS一些代码的取巧写法总结(二)

    一、在xib/storyboard里面设置view圆角半径 在xib/storyboard里面设置view圆角半径...

  • iOS 用 UIBezierPath 画指定UIRectCorn

    分析问题 遇见这个问题的基本都是代码给xib中的view设置指定圆角。那么为什么会这样呢?且看下图1-1: 通过日...

  • UIView

    view的封装 Xib和storyboard对比 Xib的加载 使用xib自定义view的步骤 l新建自定义控件类...

  • xib自定义,高度减少64

    解决在导航栏不透明的情况下,自定义xib view高度被压缩64的问题 在使用xib自定义view的时候,个人习惯...

  • xib在代码中调整

    1,自定义view继承uiview。创建xib文件绑定该view以及元素2,在自定义view内部创建一个初始化方法...

  • 封装自定义圆角方向并且可设置投影的View

    说明: 封装自定义圆角方向并且可设置投影的View通过传入不同的圆角方向以及圆角半径来实现 Demo地址https...

  • UI-Xib

    Xib的加载 方法1 方法2 自定义控件view的步骤 新建自定义控件类 修改xib中view的类名 封装xib的...

  • 如何自定义View

    5iOS第五天—自定义View以及KVC&KVO xib的基本使用 什么是xib?xib就是缩小版的storybo...

  • 视图指定位置圆角

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

网友评论

      本文标题:切指定圆角以及xib自定义view出现的问题

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