У меня есть Table View
с 5 ячейками, как описано ниже. Намерение состоит в том, чтобы иметь topRoundedBorderCell
с белой заливкой и только закругленными границами TopLeft
и TopRight
, а затем иметь возможность добавлять столько ячеек, сколько необходимо, с белой заливкой и квадратными углами для любого количества параметров, по желанию, наконец, bottomRoundedCornerCell
будет иметь белая заливка только со скругленными углами BottomLeft
и BottomRight
. Создание иллюзии одного длинного белого ящика с закругленными углами, который соответствует всем параметрам, относящимся к одной группе. Показано ниже.
Разбивка ячеек раскадровки:
Когда я запускаю приложение:
Однако, как вы можете видеть на втором изображении, только граница TopLeft
закруглена, остальные остаются квадратными.
Я использую метод Bezier Path roundedRect
в 2 отдельных классах типа UIView
, которые я назначаю соответствующему views
через мой Storyboard
.
Верхнее представление со скругленными границами:
class TopRectangleRoundedCornersView: UIView {
override func awakeFromNib() {
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [UIRectCorner.TopLeft , UIRectCorner.TopRight], cornerRadii: CGSize(width:10.0, height:10.0))
let mask = CAShapeLayer()
mask.path = path.CGPath
self.layer.mask = mask
self.layer.backgroundColor = UIColor.whiteColor().CGColor //white fill
}
}
Вид с закругленными нижними границами:
class BottomRectangleRoundedCornersView: UIView {
override func awakeFromNib() {
let path = UIBezierPath(roundedRect: self.bounds,
byRoundingCorners: [UIRectCorner.BottomLeft, UIRectCorner.BottomRight], cornerRadii: CGSize(width: 10.0, height: 10.0))
let mask = CAShapeLayer()
mask.path = path.CGPath
self.layer.mask = mask
self.layer.backgroundColor = UIColor.whiteColor().CGColor //white fill
}
}
super.awakeFromNib()
- person creeperspeak   schedule 04.03.2017layoutSubviews
UIView в ваших классах. - person Gary Makin   schedule 04.03.2017