如何更改UIButton TitleLabel元素

时间:2013-08-09 10:52:29

标签: c# iphone ios xamarin.ios xamarin

Xcode原生设置此属性但单声道触摸不可能!我该如何设置这个属性

button.titleLabel.numberOfLines = 1;
button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.lineBreakMode = UILineBreakModeClip;

TitleLabel属性是单声道触摸的只读属性。并覆盖此属性不起作用

3 个答案:

答案 0 :(得分:1)

TitleLabel只有一个吸气剂的事实是正常的。在ObjC中也是如此,例如来自Apple documentation

@property(nonatomic, readonly, retain) UILabel *titleLabel

然而,这不是您的代码中的问题(对于Xamarin.iOS或ObjC而言),因为您设置新的UILabel。代码正在做的是在标签上设置属性。

我认为只读是因为您无法将 UILabel实例设置为UIButton,但修改现有实例。因此,以下C#代码将起作用(就像您的原始ObjC一样):

button.TitleLabel.NumberOfLines = 1;
button.TitleLabel.AdjustsFontSizeToFitWidth = true;
button.TitleLabel.LineBreakMode = UILineBreakMode.Clip;

答案 1 :(得分:0)

您正在执行的操作无效,因为您需要指定按钮的状态。该按钮可以针对不同的状态具有不同的标题。

这样称呼:

 [button setTitle:@"Edit" forState:UIControlStateNormal]

之后,如果您需要指定其他属性,可以这样做:

-setTitleColor:forState 

此处记录:apple reference for UIButton titleLabel

答案 2 :(得分:-1)

尝试这个

    [back.titleLabel setAdjustsFontSizeToFitWidth:YES];
    [back.titleLabel setNumberOfLines:1];
    [back.titleLabel setLineBreakMode:NSLineBreakByCharWrapping];

您可以使用按钮设置方法更改按钮标题元素。