2012-10-09 26 views
5

Tôi có một UIBarButtonItem trong thanh công cụ UIToolbar ở đầu ứng dụng iPad (iOS 5.1.) Tôi có chiều rộng là 65 trong Interface Builder. Đó là phong cách 'giáp' và định danh 'tùy chỉnh'. Nhãn văn bản và màu sắc thay đổi khi được nhấn:Làm thế nào để ngăn chặn UIBarButtonItem với các thuộc tính tùy chỉnh từ việc thay đổi kích thước

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

Và cứ như vậy, lấy nhiều nhãn và màu khác nhau. Điều này làm việc tốt, các nút đã không thay đổi kích cỡ mặc dù các tiêu đề cho các tiểu bang khác nhau là khá khác nhau về chiều dài.

sau đó tôi đã thêm mã này để thiết lập font, khi khởi động:

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

Bây giờ, nút này được kích thước để phù hợp với chiều rộng của tiêu đề nó có khi khởi động. Nó thay đổi kích thước khi các tiêu đề thay đổi. Làm thế nào tôi có thể khóa kích thước? Tôi không hiểu sự tương tác ở đây; Tôi nghĩ tất cả những gì tôi đã làm là thay đổi thuộc tính font tiêu đề, không phải bất cứ điều gì khác về nút.

Tôi cũng cố gắng thiết lập một cách rõ ràng width tài sản:

[btnA setWidth:65.0]; 

Một lần nữa vô ích.

Trả lời

6

Tôi nhận được UIBarButtonItem để ngừng thay đổi kích thước bằng cách sử dụng thuộc tính possibleTitles, để gợi ý độ rộng tối đa mong muốn.

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

Điều này hiệu quả nhưng tôi không thể đặt chiều rộng theo kích thước tôi muốn, vì vậy, tôi sẽ để câu hỏi mở.

+0

Tim, bạn muốn kích thước nào? – Carl

Các vấn đề liên quan