Xcode 本身设置了这个属性,但是单声道触摸是不可能的!我怎样才能设置这个属性
button.titleLabel.numberOfLines = 1;
button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.lineBreakMode = UILineBreakModeClip;
TitleLabel 属性是单声道触摸中的只读属性。并覆盖此属性不起作用
Xcode 本身设置了这个属性,但是单声道触摸是不可能的!我怎样才能设置这个属性
button.titleLabel.numberOfLines = 1;
button.titleLabel.adjustsFontSizeToFitWidth = YES;
button.titleLabel.lineBreakMode = UILineBreakModeClip;
TitleLabel 属性是单声道触摸中的只读属性。并覆盖此属性不起作用
TitleLabel
只有一个吸气剂的事实是正常的。在 ObjC 中也是如此,例如来自Apple 文档。
@property(nonatomic, readonly, retain) UILabel *titleLabel
但是,这不是您的代码(对于 Xamarin.iOS 或 ObjC)中的问题,因为您没有设置新的UILabel
. 代码所做的是在标签上设置属性。
IOW 它是只读的,因为您不能将新 UILabel
实例设置为UIButton
,但可以修改现有实例。所以下面的 C# 代码可以工作(就像你原来的 ObjC 一样):
button.TitleLabel.NumberOfLines = 1;
button.TitleLabel.AdjustsFontSizeToFitWidth = true;
button.TitleLabel.LineBreakMode = UILineBreakMode.Clip;
您所做的将不起作用,因为您需要指定按钮的状态。对于不同的状态,按钮可以有不同的标题。
像这样称呼它:
[button setTitle:@"Edit" forState:UIControlStateNormal]
之后,如果您需要指定其他属性,您可以这样做:
-setTitleColor:forState
试试这个
[back.titleLabel setAdjustsFontSizeToFitWidth:YES];
[back.titleLabel setNumberOfLines:1];
[back.titleLabel setLineBreakMode:NSLineBreakByCharWrapping];
您可以使用按钮设置方法更改按钮标题元素。