5

我在 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];

再次无济于事。

4

1 回答 1

6

UIBarButtonItem通过使用该possibleTitles属性来停止调整大小,以提示所需的最大宽度。

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

这行得通,但我无法将宽度明确设置为我想要的大小,所以我把这个问题留了下来。

于 2012-10-09T19:29:53.890 回答