joe*_*els 8 cocoa-touch uikit ios
我试图获得一个带圆角顶角和方形底角的视图,类似于分组UITableViewCell的顶行.
任何人都知道一种简单的方法来绘制它而不是使用背景图像?
Pen*_*One 11
我刚才读过这篇文章:
还有这个后续帖子:
我认为这些应该回答你的问题.
Swift 4:从iOS 11开始
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 11.0, *) {
self.viewToRound.clipsToBounds = true
viewToRound.layer.cornerRadius = 20
viewToRound.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
} else {
// Fallback on earlier versions
}
}
Run Code Online (Sandbox Code Playgroud)
早期的iOS版本
override func viewDidLayoutSubviews() {
self.viewToRound.clipsToBounds = true
let path = UIBezierPath(roundedRect: viewToRound.bounds,
byRoundingCorners: [.topRight, .topLeft],
cornerRadii: CGSize(width: 20, height: 20))
let maskLayer = CAShapeLayer()
maskLayer.path = path.cgPath
viewToRound.layer.mask = maskLayer
}
Run Code Online (Sandbox Code Playgroud)
在iOS 11中,引入了一个名为CACornerMask的新结构.
使用这种结构,您可以使用角落进行更改:topleft,topright,left left,right right.
Swift示例:
myView.clipsToBounds = true
myView.layer.cornerRadius = 10
myView.layer.maskedCorners = [.layerMinXMinYCorner,.layerMaxXMinYCorner]
Run Code Online (Sandbox Code Playgroud)
Objective-C样本
self.view.clipsToBounds = YES;
self.view.layer.cornerRadius = 10;
self.view.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17319 次 |
| 最近记录: |