Xcode/iOS 5 - 仅舍入 UITableView 的底部 2 个角

Posted

技术标签:

【中文标题】Xcode/iOS 5 - 仅舍入 UITableView 的底部 2 个角【英文标题】:Xcode/iOS 5 - Rounding only bottom 2 corners of UITableView 【发布时间】:2012-05-03 02:40:03 【问题描述】:

对于我正在开发的应用程序的 UI,我正在尝试为视图控制器创建圆角。我有一个 UINavigationBar 和一个 UITableView。我已经通过使用带有 UIAppearance 内容的自定义背景手动将 UINavigationBar 的顶部 2 个角弄圆了。现在我想把 UITableView 的 bottom 2 角弄圆,这样看起来不错。我现在拥有的代码绕过了所有 4 个角落。有人知道我怎么只能倒数第二吗?

这是我现在在 UITableViewController 的 ViewDidLoad 方法中添加的内容。我已经导入了 QuartzCore。

    _tasksTableView.layer.cornerRadius=5;

非常感谢任何可以提供帮助的人!

【问题讨论】:

【参考方案1】:

您可以创建新的 CAShapeLayer 并将其路径设置为使用

创建的 bezierPath
+ (UIBezierPath *)bezierPathWithRoundedRect:(CGRect)rect 
                          byRoundingCorners:(UIRectCorner)corners 
                                cornerRadii:(CGSize)cornerRadii

通过将角设置为(UIRectCornerBottomLeft | UIRectCornerBottomRight),您的新图层将在两个底角具有圆角。

接下来,通过在表格视图层上设置mask 属性,使用刚刚创建的形状层来掩盖 _tasksTableView.layer。


注意:形状层应该有任何超层。

注意:在将贝塞尔路径设置为形状层的path 属性之前,需要通过在贝塞尔路径上调用CGPath 将贝塞尔路径转换为CGPathRef。

【讨论】:

以上是关于Xcode/iOS 5 - 仅舍入 UITableView 的底部 2 个角的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中仅平滑顶部角度和图像视图

向上滚动 UITable 后的 Swift 5 调用函数

将 UITable 行号从大到小反转(...5,4,3,2,1)

XCode 4.4 iOS 5.1 模拟器问题

仪器显示内存泄漏 - Xcode 5 / iOS7

横向应用 Xcode 5 / iOS 7