2011年1月14日

[iPhone]在toolbar中加入Segmented Control 並置中


我想要做一個在擺放在toolbar中的segmented control,並且擺放在toolbar中央的位置。
首先我先用Interface Builder建立一個segmented control的物件並且調整它的外觀,



建立完成之後,我們在.h檔中,加入宣告
IBOutlet UISegmentedControl *modeControl;
並且定義它的property
@property (nonatomic,retain) UISegmentedControl *modeControl;

.m檔中,加入synthesize
@synthesize modeControl;


要把物件放入toolbar中,必需使用setToolbarItems:animated:這個方法(void)setToolbarItems:(NSArray *)toolbarItems animated:(BOOL)animated
而這個方法中接收的toolbatItems array內的物件必需是UIBarButtonItem型態的。

因此,我們利用一個UIBarButtonItemsegmented control 包起來
UIBarButtonItem *barbtnShell = [[UIBarButtonItem alloc] initWithCustomView:self.modeControl];
而置中的方法是在這個 barbtnShell之前,加入一個空隙,我們可以利用UIBarButtonSystemItemFixedSpace來達到。
所以我們定義
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
並設定空隙所需要的寬度,
[space
setWidth:44.5];
接下來把空隙和segmented control加入array裡面
NSArray *array = [[NSArray alloc] initWithObjects:space,barbtnShell,nil];
最後使用setToolbarItems把物件加入toolbar
[self setToolbarItems:array animated:NO];
這樣就成功的把segmented control置中的擺放在toolbar中了。



沒有留言: