【问题标题】:How can i change UIButton TitleLabel Element我如何更改 UIButton TitleLabel 元素
【发布时间】:2013-08-09 10:52:28
【问题描述】:

Xcode 本身就设置了这个属性,但单声道触摸是不可能的!我该如何设置这个属性

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

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

【问题讨论】:

    标签: c# iphone ios xamarin.ios xamarin


    【解决方案1】:

    TitleLabel 只有一个 getter 是正常的。在 ObjC 中也是如此,例如来自Apple documentation

    @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;
    

    【讨论】:

      【解决方案2】:

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

      这样称呼它:

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

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

      -setTitleColor:forState 
      

      记录在这里:apple reference for UIButton titleLabel

      【讨论】:

      • 问题不在于 xcode 和目标 c。效果很好,但使用 c# 的单点触控不起作用。
      【解决方案3】:

      试试这个

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-21
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 2022-11-29
        • 2016-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多