1

Xcode 本身设置了这个属性,但是单声道触摸是不可能的!我怎样才能设置这个属性

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

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

4

3 回答 3

1

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;
于 2013-08-09T12:15:30.027 回答
0

您所做的将不起作用,因为您需要指定按钮的状态。对于不同的状态,按钮可以有不同的标题。

像这样称呼它:

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

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

-setTitleColor:forState 

此处记录:Apple reference for UIButton titleLabel

于 2013-08-09T10:58:39.533 回答
-1

试试这个

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

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

于 2013-08-09T10:58:04.640 回答