我想要做一個在擺放在toolbar中的segmented control,並且擺放在toolbar中央的位置。
建立完成之後,我們在.h檔中,加入宣告
IBOutlet UISegmentedControl *modeControl;
IBOutlet UISegmentedControl *modeControl;
並且定義它的property
@property (nonatomic,retain) UISegmentedControl *modeControl;
@property (nonatomic,retain) UISegmentedControl *modeControl;
在.m檔中,加入synthesize
@synthesize modeControl;
要把物件放入toolbar中,必需使用setToolbarItems:animated:這個方法- (void)setToolbarItems:(NSArray *)toolbarItems animated:(BOOL)animated
而這個方法中接收的toolbatItems array內的物件必需是UIBarButtonItem型態的。
因此,我們利用一個UIBarButtonItem把segmented control 包起來
UIBarButtonItem *barbtnShell = [[UIBarButtonItem alloc] initWithCustomView:self.modeControl];
UIBarButtonItem *barbtnShell = [[UIBarButtonItem alloc] initWithCustomView:self.modeControl];
而置中的方法是在這個 barbtnShell之前,加入一個空隙,我們可以利用UIBarButtonSystemItemFixedSpace來達到。
所以我們定義
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
所以我們定義
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
並設定空隙所需要的寬度,
[space setWidth:44.5];
[space setWidth:44.5];
接下來把空隙和segmented control加入array裡面
NSArray *array = [[NSArray alloc] initWithObjects:space,barbtnShell,nil];
NSArray *array = [[NSArray alloc] initWithObjects:space,barbtnShell,nil];
最後使用setToolbarItems把物件加入toolbar,
[self setToolbarItems:array animated:NO];
[self setToolbarItems:array animated:NO];
這樣就成功的把segmented control置中的擺放在toolbar中了。
沒有留言:
張貼留言