【发布时间】:2014-03-14 16:08:14
【问题描述】:
我在进行圆角处理的类别中有以下代码。我也想画个边框。但边角的圆角部分不显示边框。
这里是代码
- (void) roundTopCorners:(CGFloat) radius
{
self.layer.masksToBounds = YES;
CGRect bounds = self.bounds;
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight) cornerRadii:CGSizeMake(radius, radius)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = bounds;
maskLayer.path = maskPath.CGPath;
maskLayer.strokeColor = [UIColor redColor].CGColor;
self.layer.mask = maskLayer;
}
【问题讨论】:
-
"请注意,如果您尝试在动态调整大小的视图(例如响应自动旋转)上使用这种框架样式,则必须更加小心,因为图层可以'不要利用自动布局。在这种情况下,您最好的解决方案可能是创建一个自定义 UITextField 并实现 layerClass 以返回一个自定义图层类,该类可以动态调整类似于上面创建的图层的大小。@David Berry“实际上并不那么棘手,如果你想调整所有这些层的大小,只需将所有代码放在 viewDidAppear 中,它就可以工作!
标签: ios objective-c uiview core-graphics