2012-05-02 30 views
6

Tôi có một điều khiển phân đoạn. Bất cứ khi nào xem xong xuất hiện, tôi tạo một mục nút thanh để giữ nó và đặt nó như là thanh công cụ. Vấn đề tôi gặp phải là điều khiển phân đoạn sẽ không lấp đầy không gian trên thanh công cụ, mặc dù nó được thiết lập để có hành vi lấp đầy không gian.Làm cách nào để có điều khiển phân đoạn không gian trong thanh công cụ trong ứng dụng iOS?

Làm cách nào để kiểm soát phân đoạn được điền bằng không gian trên thanh công cụ trong ứng dụng iOS?

Trả lời

1

Có vẻ như bạn đang cố gắng thực hiện hành vi thanh công cụ không chuẩn trên thanh công cụ UIToolbar. Tại sao không chỉ thả một UIView trong đó và điền nó với một UISegmentedControl theo cách bình thường? Có một số chức năng cụ thể của UIToolbar mà bạn cần không?

0

Không có "hành vi điền không gian" cho UIViews nói chung. Họ nhận được kích thước họ được giao. Tất cả các bạn có thể làm là:

  1. thiết lập mặt nạ autoresizing của họ để kiểm soát cách thức chúng được thay đổi kích cỡ nếu xem cha mẹ của họ thay đổi kích thước của nó
  2. thiết UIViewContentMode của họ để kiểm soát cách họ thay đổi kích thước nội dung của họ (quan trọng đối với UIImageViews, cho ví dụ)

Trong trường hợp của bạn, bạn có thể làm như sau để có được một UIToolbar chứa một UISegmentedControl đó là rộng như thanh công cụ:

(void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Create the toolbar; place it at the bottom of the view. 
    UIToolbar *myToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height-44, self.view.bounds.size.width, 44)]; 
    myToolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; 
    [self.view addSubview:myToolbar]; 

    // Create the UISegmentedControl with two segments and "Bar" style. Set frame size to that of the toolbar minus 6pt margin on both sides, since 6pt is the padding that is enforced anyway by the UIToolbar. 
    UISegmentedControl *mySegmentedControl = [[UISegmentedControl alloc] initWithFrame:CGRectInset(myToolbar.frame, 6, 6)]; 
    // Set autoresizing of the UISegmentedControl to stretch horizontally. 
    mySegmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; 
    [mySegmentedControl insertSegmentWithTitle:@"First" atIndex:0 animated:NO]; 
    [mySegmentedControl insertSegmentWithTitle:@"Second" atIndex:1 animated:NO]; 
    mySegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 

    // Create UIBarButtonItem with the UISegmentedControl as custom view, and add it to the toolbar's items 
    UIBarButtonItem *myBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:mySegmentedControl]; 
    myToolbar.items = [NSArray arrayWithObject:myBarButtonItem]; 
} 
Các vấn đề liên quan