Как я могу подчеркнуть текст кнопки UIButton? - PullRequest
7 голосов
/ 26 марта 2011

Текст поступает из базы данных.Я хотел бы использовать его для кнопки и подчеркнуть текст кнопки.Как я могу это сделать?

Ответы [ 4 ]

42 голосов
/ 11 июля 2013

В iOS 6 NSAttributedString используется для изменения текста, вы можете использовать "NSMutableAttributedString" для многоцветного текста, шрифта, стиля и т. Д., Используя одну UIButton или UILabel.

NSMutableAttributedString *titleString = [[NSMutableAttributedString alloc] initWithString:@"The Underlined text"];

// making text property to underline text-
[titleString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [titleString length])];

// using text on button
[button setAttributedTitle: titleString forState:UIControlStateNormal];
3 голосов
/ 26 марта 2011

Для этого вы можете создать подкласс UILabel и переписать его метод -drawRect, а затем использовать собственный UILabel и добавить к нему UIButton пользовательского типа.

Создайте метод drawRect в UILabelкак

- (void)drawRect:(CGRect)rect 
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetRGBStrokeColor(context, 207.0f/255.0f, 91.0f/255.0f, 44.0f/255.0f, 1.0f);

    CGContextSetLineWidth(context, 1.0f);

    CGContextMoveToPoint(context, 0, self.bounds.size.height - 1);
    CGContextAddLineToPoint(context, self.bounds.size.width, self.bounds.size.height - 1);

    CGContextStrokePath(context);

    [super drawRect:rect]; 

}
2 голосов
/ 19 октября 2016

В Swift 3 для подчеркивания может использоваться следующее расширение:

extension UIButton {
    func underlineButton(text: String) {
        let titleString = NSMutableAttributedString(string: text)
        titleString.addAttribute(NSUnderlineStyleAttributeName, value: NSUnderlineStyle.styleSingle.rawValue, range: NSMakeRange(0, text.characters.count))
        self.setAttributedTitle(titleString, for: .normal)
    }
} 
0 голосов
/ 22 ноября 2012

Чтобы сделать это немного проще (это обычное требование), я создал простой подкласс UIButton под названием BVUnderlineButton, который можно сразу добавить в свои проекты.

Это на Github на https://github.com/benvium/BVUnderlineButton (лицензия MIT).

Вы можете использовать его в XIB / Storyboard или напрямую через код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...