Swift
Краткий ответ:
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
.
Смотри также