【问题标题】:How to prevent UIBarButtonItem with custom attributes from changing size如何防止具有自定义属性的 UIBarButtonItem 改变大小
【发布时间】:2012-09-30 03:51:54
【问题描述】:

我在 iPad 应用程序(iOS 5.1)顶部的 UIToolbar 中有一个 UIBarButtonItem。我在 Interface Builder 中将其宽度设置为 65。它的样式为“镶边”,标识符为“自定义”。按下时文本标签和色调会发生变化:

    [btnA setTitle:@"State A"];
    [btnA setTintColor:[UIColor STATE_A_COL];

等等,采用各种标签和颜色。这很好用,即使各个州的标题长度完全不同,按钮也没有调整大小。

然后我添加了这段代码来设置字体,在启动时:

UIFont * futura = [UIFont fontWithName:@"Futura" size:13];
NSDictionary *attributes = [NSDictionary dictionaryWithObject:futura
                                                       forKey:UITextAttributeFont];
[btnA setTitleTextAttributes:attributes forState:UIControlStateNormal];

现在,按钮的大小适合它在启动时的标题宽度。它随着标题的变化而改变大小。如何锁定尺寸?我不明白这里的相互作用;我以为我所做的只是更改标题字体属性,而不是按钮的任何其他内容。

我也尝试过明确设置width 属性:

[btnA setWidth:65.0];

再次无济于事。

【问题讨论】:

    标签: ios cocoa-touch ios5


    【解决方案1】:

    我使用possibleTitles 属性让UIBarButtonItem 停止调整大小,以提示所需的最大宽度。

    [btnA setPossibleTitles:[NSSet setWithObjects:@"State A', @"B", @"Final state", nil]];
    

    这可行,但我无法将宽度明确设置为我想要的大小,所以我将问题留待解决。

    【讨论】:

    • 蒂姆,你想要什么尺码?
    猜你喜欢
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2020-12-11
    相关资源
    最近更新 更多