【问题标题】:Xcode/iOS 5 - Rounding only bottom 2 corners of UITableViewXcode/iOS 5 - 仅舍入 UITableView 的底部 2 个角
【发布时间】:2012-05-03 02:40:03
【问题描述】:
对于我正在开发的应用程序的 UI,我正在尝试为视图控制器创建圆角。我有一个 UINavigationBar 和一个 UITableView。我已经通过使用带有 UIAppearance 内容的自定义背景手动将 UINavigationBar 的顶部 2 个角弄圆了。现在我想把 UITableView 的 bottom 2 角弄圆,这样看起来不错。我现在拥有的代码绕过了所有 4 个角落。有人知道我怎么只能倒数第二吗?
这是我现在在 UITableViewController 的 ViewDidLoad 方法中添加的内容。我已经导入了 QuartzCore。
_tasksTableView.layer.cornerRadius=5;
非常感谢任何可以提供帮助的人!
【问题讨论】:
标签:
uitableview
ios5
rounded-corners
【解决方案1】:
您可以创建新的 CAShapeLayer 并将其路径设置为使用
创建的 bezierPath
+ (UIBezierPath *)bezierPathWithRoundedRect:(CGRect)rect
byRoundingCorners:(UIRectCorner)corners
cornerRadii:(CGSize)cornerRadii
通过将角设置为(UIRectCornerBottomLeft | UIRectCornerBottomRight),您的新图层将在两个底角具有圆角。
接下来,通过在表格视图层上设置mask 属性,使用刚刚创建的形状层来掩盖 _tasksTableView.layer。
注意:形状层应该不有任何超层。
注意:在将贝塞尔路径设置为形状层的path 属性之前,需要通过在贝塞尔路径上调用CGPath 将贝塞尔路径转换为CGPathRef。