2011-05-23 49 views
0

我在代碼中創建了一個UISegmentedControl,並使用從JSON響應中檢索的名稱初始化它。 btnArray保存要在segmentedItems上顯示的名稱。第一項是固定的「全部」按鈕。帶動態大小和SegmentedItems的UISegmentedControl

我的問題是,源數組包含4-8之間,所以這會導致段上的文本顯示在segementItem之外的問題。

有沒有什麼辦法讓段有一個可變的大小取決於有多少segmentItems,所以它仍然適合工具欄內?

另外,我怎樣才能控制顯示的文本的長度,即剪輯文本,如果它不適合內部,類似於UIButton的相同行爲。

還是有人有任何提示導航解決方案與「下一個」和「前一個」,其中可能切換新的細分?這樣一來,我可以有一個固定的NR,始終顯示第4,並且對控制新的細分滑動並導航回到以前的4

這裏的可能性是我的代碼:

segmentedControl = [[UISegmentedControl alloc] initWithItems:btnArray]; 
segmentedControl.tintColor = [UIColor grayColor]; 
segmentedControl.selectedSegmentIndex = 0; 
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.frame = CGRectMake(0, 0, 300, 30); 

// Setup the target and actions for the segmentedControl 
[segmentedControl addTarget:self 
        action:@selector(selectGroup:) 
      forControlEvents:UIControlEventValueChanged]; 

// Add the UISegmentedControl as a UIBarButtonItem subview to the UIToolbar 
UIBarButtonItem *segmentedItem = [[[UIBarButtonItem alloc] initWithCustomView:segmentedControl] autorelease]; 
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
NSArray *groupsButtons = [NSArray arrayWithObjects:flexSpace, segmentedItem, flexSpace, nil]; 

[groupsToolbar setItems:groupsButtons]; 
+0

好吧,最後使用Three20 TTTabBar和TTTabStrip來解決我的問題。 [Three20](http://three20.info/) – Silversnail 2011-06-08 14:10:42

回答

1

聽起來像一個UITabBar是你在找什麼。如果有4個以上的項目,您可以免費獲得一個「更多...」按鈕,顯示其餘項目。