iOS 3.0 и более поздние версии
iPhone OS 3.0 и более поздние версии поддерживают свойство cornerRadius
класса CALayer
. Каждое представление имеет экземпляр CALayer
, которым вы можете манипулировать. Это означает, что вы можете получить закругленные углы в одну строку:
view.layer.cornerRadius = 8;
Вам потребуется #import <QuartzCore/QuartzCore.h>
и ссылка на платформу QuartzCore, чтобы получить доступ к заголовкам и свойствам CALayer.
До iOS 3.0
Одним из способов сделать это, который я недавно использовал, является создание подкласса UIView, который просто рисует скругленный прямоугольник, а затем создание UILabel или, в моем случае, UITextView, внутри него. В частности:
- Создайте
UIView
подкласс и назовите его как RoundRectView
.
- В методе
RoundRectView
drawRect:
нарисуйте контур вокруг границ представления, используя вызовы Core Graphics, например CGContextAddLineToPoint () для краев и CGContextAddArcToPoint () для закругленных углов.
- Создайте
UILabel
экземпляр и сделайте его подпредставлением RoundRectView.
- Установите рамку метки на несколько пикселей от границ RoundRectView. (Например,
label.frame = CGRectInset(roundRectView.bounds, 8, 8);
)
Вы можете поместить RoundRectView в представление с помощью Interface Builder, если вы создадите универсальный UIView, а затем измените его класс с помощью инспектора. Вы не увидите прямоугольник до тех пор, пока не скомпилируете и не запустите свое приложение, но, по крайней мере, сможете разместить подпредставление и при необходимости подключить его к розеткам или действиям.