Как я могу установить границу метки, которая динамически генерируется (не из Interface Builder)?
Установить границу метки в iphone
Ответ 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.