2011-03-26 43 views
8

文本來自數據庫。我想使用它作爲按鈕並強調按鈕的文字。我怎樣才能做到這一點?如何強調UIButton的按鈕文字?

+0

這裏是如何做在情節串連圖板(的XCode 6)相同。 http://stackoverflow.com/a/26930512/309046 – satish 2015-03-03 09:43:14

回答

4

爲此,您可以繼承UILabel和覆蓋其-drawRect方法,然後使用自己的UILabel並對其添加UIButton自定義類型的。

請在您的UILabel drawRect這個方法

- (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]; 

} 
0

爲了使這個簡單一點(這是一個共同的要求)我已經建立了名爲BVUnderlineButton,你可以直接拖放到你的項目一個簡單的UIButton子類。

它在Github上https://github.com/benvium/BVUnderlineButton(MIT許可證)。

您可以在XIB/Storyboard或直接通過代碼中使用它。

42

在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]; 
+1

我們可以讓這條線更低嗎? – onmyway133 2014-11-30 02:52:19

1

在夫特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) 
    } 
} 
相關問題