Установить границу метки в iphone

Как я могу установить границу метки, которая динамически генерируется (не из Interface Builder)?

Ответ 1

вы можете сделать это с помощью

Label.layer.borderColor = [UIColor whiteColor].CGColor;
Label.layer.borderWidth = 4.0;

перед этим вам нужно импортировать фреймворк QuartzCore/QuartzCore.h

Ответ 2

Быстрая версия

введите описание изображения здесь

Установить границу метки

label.layer.borderWidth = 2.0

Установить цвет рамки

label.layer.borderColor = UIColor.blueColor().CGColor

Использовать закругленные углы

label.layer.cornerRadius = 8

Сделать цвет фона в закругленных углах

label.layer.masksToBounds = true

Ответ 3

Вы также можете попытаться подклассировать свою метку и переопределить метод drawRect: рисовать или границу или что угодно:

- (void)drawRect:(CGRect)rect
{
    [super drawRect:rect];
    CGContextRef context = UIGraphicsGetCurrentContext();
    [[UIColor blackColor] setStroke];
    CGContextStrokeRect(context, self.bounds);
}

Ответ 4

Я не уверен, что вы можете по умолчанию с UILabel. Возможно, вам стоит рассмотреть возможность использования только для чтения (field.editing = NO) UITextField и установки его borderStyle (что можно сделать программным путем с помощью UITextBorderStyle). Это может быть немного "тяжелым". Другой вариант может быть для подкласса UILabel для рисования вашей границы.

В качестве альтернативы и в зависимости от ваших потребностей это может быть лучше, используйте поддержку CALayer и нарисуйте границу, используя свойства borderColor и borderWidth.