2010-03-24 27 views
10

Tôi đang đặt nhãn trên thanh công cụ UIToolbar (theo mẹo này: Adding a UILabel to a UIToolbar).Tôi có thể căn giữa vật phẩm UIToolbar không?

Nhưng thanh công cụ có nút ở bên trái và do đó không gian linh hoạt ném nhãn ra khỏi tâm, đó là nơi tôi muốn. Tôi có thể tập trung vào mục này trên thanh công cụ để nó vẫn ở giữa thanh công cụ không?

(Đã cố gắng cân bằng nút bằng không gian cố định giả, không có xúc xắc.)

Cảm ơn!

Trả lời

3

Cách đơn giản nhất là đặt nhãn lên trên thanh, trong chế độ xem chính và hiển thị ở đó.

+0

Cảm ơn khác-Ben, đó là kế hoạch của tôi B. :) –

+0

Phương pháp của EricS vượt trội và dễ thực hiện hơn nhiều. – titaniumdecoy

+1

Phương pháp của EricS là "tĩnh" và không hoạt động khi bạn thay đổi hướng – Undolog

35

Thêm mục không gian linh hoạt vào bên trái và bên phải của mục ở giữa của bạn, như bạn đã làm. Sau đó, thêm một mục không gian cố định ở cuối và thiết lập chiều rộng cho bất kỳ chiều rộng nút trái nào - ở đâu đó khoảng 28 pixel.

UIBarButtonItem *fixedItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:NULL] autorelease]; 
fixedItem.width = 28; 
+7

Đây phải là câu trả lời được chấp nhận. – titaniumdecoy

+2

Điều này giả định phông chữ hệ thống sẽ không bao giờ thay đổi (nó có nhiều lần) và người dùng sẽ không bao giờ đặt phông chữ có kích thước khác. Nó cũng bỏ qua các bản địa hóa tiêu đề của nút của bạn với chiều rộng khác nhau. –

6

Để đặt một text/tiêu đề trên một thanh công cụ bạn có thể sử dụng một đơn giản UILabel như xem dưới đây:

UILabel *labelTitle = [[UILabel alloc] init]; 
labelTitle.font =[UIFont fontWithName:@"Helvetica-Bold" size:18]; 
labelTitle.backgroundColor = [UIColor clearColor]; 
labelTitle.textAlignment = UITextAlignmentCenter; 
labelTitle.userInteractionEnabled = NO; 
labelTitle.text = @"Your Title"; 
[labelTitle sizeToFit]; 
CGRect labelTitleFrame = labelTitle.frame; 
labelTitleFrame.size.width = self.toolbar.bounds.size.width; 
labelTitleFrame.origin.y = (self.toolbar.bounds.size.height - labelTitleFrame.size.height)/2; 
labelTitle.frame = labelTitleFrame; 
labelTitle.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
// Just add UILabel like UIToolBar's subview 
[self.toolbar addSubview:labelTitle]; 
[labelTitle release]; 
labelTitle = nil; 
+0

Phương pháp này hoạt động đúng khi bạn thay đổi hướng và khi có các nút thanh bên trái hoặc bên phải – Undolog

0

Vâng, chúng tôi có thể tập trung một mục thanh công cụ chỉ cần đặt hai không gian linh hoạt trong thanh công cụ như:

UIBarButtonItem *flexibaleSpaceBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

toolbar.items = [NSArray arrayWithObjects:loginButton,flexibaleSpaceBarButton,toolBarLabel,flexibaleSpaceBarButton, nil]; 
Các vấn đề liên quan