1. 程式人生 > >iOS系統自帶控制元件 UIBarButtonSystemItem 的樣式解析

iOS系統自帶控制元件 UIBarButtonSystemItem 的樣式解析

UIBarButtonSystemItem的樣式解析
樣式 圖片
UIBarButtonSystemItemDone
UIBarButtonSystemItemCancel
UIBarButtonSystemItemEdit
UIBarButtonSystemItemSave
UIBarButtonSystemItemAdd
UIBarButtonSystemItemFlexibleSpace 無樣式
UIBarButtonSystemItemFixedSpace 無樣式
UIBarButtonSystemItemCompose
UIBarButtonSystemItemReply
UIBarButtonSystemItemAction
UIBarButtonSystemItemOrganize
UIBarButtonSystemItemBookmarks
UIBarButtonSystemItemSearch
UIBarButtonSystemItemRefresh
UIBarButtonSystemItemStop
UIBarButtonSystemItemCamera
UIBarButtonSystemItemTrash
UIBarButtonSystemItemPlay
UIBarButtonSystemItemPause
UIBarButtonSystemItemRewind
UIBarButtonSystemItemFastForward
UIBarButtonSystemItemUndo
UIBarButtonSystemItemRedo
UIBarButtonSystemItemPageCurl

可能有同學注意到  UIBarButtonSystemItemFlexibleSpace 和 UIBarButtonSystemItemFixedSpace 兩個是無樣式的.

那他們是做什麼用的呢?

他們不是按鈕,而是調整按鈕間距用的物件.

讓4個按鈕等間距地分佈在工具條中,在使用UIViewController的setToolbarItems:方法 追加按鈕時,如下述程式碼一樣在4個按鈕之間追加IBarButtonSys
temItemFlexibleSpace物件即可。

例如下圖:


首先建立方法

-  (UIBarButtonItem*)barButtonSystemItem :(UIBarButtonSystemItem) systemItem {
    
    UIBarButtonItem* button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:systemItem target:nil action:nil];
    
    return button;
    
}

呼叫
    [self setToolbarItems:[NSArray arrayWithObjects:[self barButtonSystemItem:UIBarButtonSystemItemAction],
                           [self barButtonSystemItem:UIBarButtonSystemItemFlexibleSpace],
                           [self barButtonSystemItem:UIBarButtonSystemItemBookmarks],
                           [self barButtonSystemItem:UIBarButtonSystemItemFlexibleSpace],
                           [self barButtonSystemItem:UIBarButtonSystemItemCancel],
                           [self barButtonSystemItem:UIBarButtonSystemItemFlexibleSpace],
                           [self barButtonSystemItem:UIBarButtonSystemItemEdit],nil]];


在呼叫的過程中,使用  UIBarButtonSystemItemFlexibleSpace去佔位,達到實現規範化的目的

實現效果:


相應的 UIBarButtonSystemItemFixedSpace則是使特定位置控制元件替代.


更多精彩文章,盡在我的公眾號.