【问题标题】:How to set corner radius of a view inside a view in tableview cell?如何在表格视图单元格中的视图内设置视图的角半径?
【发布时间】:2018-03-06 09:25:38
【问题描述】:

我是 iOS 新手,遇到了这个问题。我正在创建一个这样的自定义单元格

我在主视图内拍摄了一个矩形视图(左侧)。这是设置两个视图的圆角半径的代码。

_viewBG.layer.cornerRadius = 10.0;
_viewBG.layer.shadowOpacity = 0.5;
_viewBG.layer.shadowOffset = CGSizeMake(-1, 1);
_viewBG.layer.borderWidth = 0.5;
_viewBG.layer.borderColor = [[UIColor lightGrayColor] CGColor];

UIBezierPath *maskPath = [UIBezierPath
                          bezierPathWithRoundedRect:self.viewLeft.bounds
                          byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerBottomLeft)
                          cornerRadii:CGSizeMake(10, 10)
                          ];

CAShapeLayer *maskLayer = [CAShapeLayer layer];

maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;

self.viewLeft.layer.mask = maskLayer;

但是我得到了这个输出..

所以我想根据主视图设置红色 uiview 的圆角半径......任何想法都将不胜感激。你能帮忙吗?

【问题讨论】:

    标签: ios objective-c uiview


    【解决方案1】:

    步骤:

    1. 制作一个包含左右视图的主包装视图。将其背景颜色设置为透明色。

    2. 在主包装视图内添加另一个视图,并根据需要为其指定角半径并掩码绑定为 true

    3. 在步骤 2 中创建的此子视图中,将您的红色和另一个具有属性 clip 的视图添加到边界 true

    4. 现在在主 wrapperview 中将阴影和蒙版设置为 false

    【讨论】:

    • 好的,我会尽力让你知道的。谢谢
    • 优雅的解决方案.. 谢谢 Ashwin 先生!
    • 总是很高兴..乐于助人:)
    【解决方案2】:

    只需设置单元格的clipToBounds = true

    在您的情况下,它将是 _viewBG.clipToBounds = true

    要使阴影可见,请使用_viewBG.layer.maskToBounds = false

    【讨论】:

    • 但是使用您的解决方案,主视图周围的阴影会丢失...您猜猜为什么?
    • 如果它解决了你的问题,那么接受这个答案,这样它对其他人也有帮助......:)
    • 没有解决。当我设置 _viewBG.layer.maskToBounds = false 时,它​​会出现阴影,但带有我的旧输出。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多