стриж
Короткий ответ:
myView.layer.cornerRadius = 8
myView.layer.masksToBounds = true // optional
Дополнительный ответ
Если вы пришли к этому ответу, вы, вероятно, уже видели достаточно, чтобы решить вашу проблему. Я добавляю этот ответ, чтобы дать немного более наглядное объяснение того, почему вещи делают то, что делают.
Если вы начнете с обычного, у UIView
него есть квадратные углы.
let blueView = UIView()
blueView.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
blueView.backgroundColor = UIColor.blueColor()
view.addSubview(blueView)
Вы можете дать ему закругленные углы, изменив cornerRadius
свойство представления layer
.
blueView.layer.cornerRadius = 8
Большие значения радиуса дают более закругленные углы
blueView.layer.cornerRadius = 25
и меньшие значения дают меньше закругленных углов.
blueView.layer.cornerRadius = 3
Этого может быть достаточно, чтобы решить вашу проблему прямо здесь. Однако иногда представление может иметь подпредставление или подуровень, выходящий за границы представления. Например, если бы я , чтобы добавить к югу вид , как это
let mySubView = UIView()
mySubView.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubView.backgroundColor = UIColor.redColor()
blueView.addSubview(mySubView)
или если бы я должен был добавить подслой, как это
let mySubLayer = CALayer()
mySubLayer.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
mySubLayer.backgroundColor = UIColor.redColor().CGColor
blueView.layer.addSublayer(mySubLayer)
Тогда я бы в конечном итоге
Теперь, если я не хочу, чтобы вещи висели за пределами границ, я могу сделать это
blueView.clipsToBounds = true
или это
blueView.layer.masksToBounds = true
который дает этот результат:
Оба clipsToBounds
и masksToBounds
являются эквивалентными . Просто первый используется с, UIView
а второй - с CALayer
.
Смотрите также