【问题标题】:Breakline in UIButton titleUIButton 标题中的断线
【发布时间】:2010-02-15 12:41:40
【问题描述】:

在下面的按钮中是显示的地址。我的问题是地址很长,我怎样才能在按钮标题中的两个变量之间获得断线??

NSString *sitz = map.kordinate.herkunft;
NSString *strasse = map.kordinate.strasse;
NSString *strasseMitKomma = [strasse stringByAppendingString:@","];
NSString *fertigesSitzFeld = [strasseMitKomma stringByAppendingString:sitz];
UIButton *firmensitz = [UIButton buttonWithType:UIButtonTypeRoundedRect];

分隔线必须在 strasseMitKomma 和sitz 之间??

感谢您的帮助

【问题讨论】:

    标签: iphone nsstring uibutton


    【解决方案1】:

    您必须在 UIButton 内配置 UILabel 以支持多行。
    你可以这样做:

     NSString *address;
    
        address = [NSString stringWithFormat:@"%@,\n%@", @"street name", @"city name"];   // Note the \n after the comma, that will give you a new line
    
        addressButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    
    
        [addressButton.titleLabel setLineBreakMode:UILineBreakModeWordWrap];    // Enabling multiple line in a UIButton by setting the line break mode
        [addressButton.titleLabel setTextAlignment:UITextAlignmentCenter];
    
        [addressButton setTitle:address forState:UIControlStateNormal];
    

    顺便说一句,你不需要那么多 NSString 变量。您可以将新字符串的结果放入您已经使用的 NSString 变量中。
    看看我的答案第一行中的 stringWithFormat 方法。阅读NSString documentation了解更多详情。

    【讨论】:

    • UILineBreakModeCharacterWrap 已弃用 (iOS 6.0)。请改用 NSLineBreakByCharWrapping。
    【解决方案2】:

    它适用于 iOS9。

    [_butNoReceipt.titleLabel setLineBreakMode:NSLineBreakByCharWrapping];
    [_butNoReceipt.titleLabel setTextAlignment:NSTextAlignmentCenter];
    [_butNoReceipt setTitle:btnTest forState:UIControlStateNormal];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      相关资源
      最近更新 更多