iOS 開發 中級:UIToolbar,UINavigationBar,UITabBar,UIBarButtonItem,UITabBarItem自訂方法總結

來源:互聯網
上載者:User

對於UIToolbar,UINavigationBar,UITabBar,UIBarButtonItem,UITabBarItem這幾種控制項的自訂,因為具備共同性,因此放在一起討論。

通常有兩種方式來實現自訂。

1)擷取控制項的對象,然後對這個特定的對象進行特定的修改。

2)利用UIAppearance來實現對所有同類控制項及特定同類的自訂。因為大多數應用裡面的自訂為了美觀,基本上相同類的控制項自訂方式都一樣,因此採用UIAppearance來使得介面的自訂變得非常方便。對於這種方式,通常在AppDelegate.m檔案中實現,在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
*)launchOptions 這個方法內實現。


這裡介紹一下UIAppearance的使用,參考自“UIAppearance protocol reference",有兩種方式:

1、自訂所有類對象的顯示。

[[UINavigationBar appearance] setTintColor:myColor];

2、自訂包含在特定containerclass 的類對象的顯示。這主要針對UIBarButtonItem,就是說有的UIBarButtonItem在UINavigationBar中,有的在UIToolbar中,我們可以選擇性的對存在於哪個bar中的button進行自訂。舉例如下:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]setTintColor:myNavBarColor];

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class],[UIPopoverController class], nil] setTintColor:myPopoverNavBarColor];
[[UIBarButtonItem appearanceWhenContainedIn:[UIToolbar class], nil] setTintColor:myToolbarColor];



下面總結一下各控制項使用UIAppearance自訂的Methods。摘自各蘋果官方的Reference.注意下面的方法同樣可以單獨用於某個單獨的對象。

1、UIToolbar

Customizing Appearance

– backgroundImageForToolbarPosition:barMetrics:(page 7)
Returns the image to use for the background in a given position and with given metrics.

– setBackgroundImage:forToolbarPosition:barMetrics:(page 7)
Sets the image to use for the background in a given position and with given metrics.

– shadowImageForToolbarPosition:(page 9)
Returns the image to use for the toolbar shadow in a given position.

– setShadowImage:forToolbarPosition:(page 9)
Sets the image to use for the toolbar shadow in a given position. 

tintColor(page 6)
property
The color used to tint the bar. 


2、UITabBar

Customizing Appearance

backgroundImage
(page 5)propertyThe background image for the bar.

selectedImageTintColor
(page 7) property
The tint color to apply to the gradient image used when creating the selected image.

selectionIndicatorImage
(page 8) propertyThe image used for the selection indicator.

shadowImage
(page 8)property
The shadow image to be used for the tab bar.

tintColor
(page 8)property
The tint color to apply to the tab bar background. 


3、UINavigationBar

Customizing the Bar Appearance

tintColor
(page 9)property
The color used to tint the bar.

–backgroundImageForBarMetrics:(page11)
Returns the background image for given bar metrics.

–  setBackgroundImage:forBarMetrics:(page 13)Sets the background image for given bar metrics.

–  titleVerticalPositionAdjustmentForBarMetrics:(page 14)Returns the title’s vertical position adjustment for given bar metrics.

–  setTitleVerticalPositionAdjustment:forBarMetrics:(page 14)Sets the title’s vertical position adjustment for given bar metrics.

titleTextAttributes
(page 9) propertyDisplay attributes for the bar’s title text. 


4、UIBarButtonItem

Customizing Appearance

tintColor(page 9)
property
The tint color for the button item.

–  backButtonBackgroundImageForState:barMetrics:(page 10)

Returns the back button background image for a given control state and bar metrics.

–  setBackButtonBackgroundImage:forState:barMetrics:(page 17)

Sets the back button background image for a given control state and bar metrics

–backButtonTitlePositionAdjustmentForBarMetrics:(page11)Returns the back button title offset for given bar metrics.

– setBackButtonTitlePositionAdjustment:forBarMetrics:(page 19)Sets the back button title offset for given bar metrics

– backButtonBackgroundVerticalPositionAdjustmentForBarMetrics:(page 10)Returns the back button vertical position offset for given
bar metrics.

– setBackButtonBackgroundVerticalPositionAdjustment:forBarMetrics:(page 18)Sets the back button vertical position offset for
given bar metrics.

– backgroundVerticalPositionAdjustmentForBarMetrics:(page 13)Returns the background vertical position offset for given bar metrics.

– setBackgroundVerticalPositionAdjustment:forBarMetrics:(page 21)Sets the background vertical position offset for given bar metrics.

–backgroundImageForState:barMetrics:(page11)

Returns the background image for a given state and bar metrics.

– setBackgroundImage:forState:barMetrics:(page 19)

Sets the background image for a given state and bar metrics.

– backgroundImageForState:style:barMetrics:(page 12)

Returns the background image for the specified state, style, and metrics.

– setBackgroundImage:forState:style:barMetrics:(page 20)

Sets the background image for the specified state, style, and metrics.

– titlePositionAdjustmentForBarMetrics:(page 22)Returns the title offset for given bar metrics.

– setTitlePositionAdjustment:forBarMetrics:(page 21)Sets the title offset for given bar metrics. 


5、UITabBarItem

Customizing Appearance

– titlePositionAdjustment(page 8)
Returns the offset to use to adjust the title position.

– setTitlePositionAdjustment:(page 8)
Sets the offset to use to adjust the title position. 



除此之外,就是針對特定對象進行的自訂了。

1、UITabBarItem

– finishedSelectedImage
(page 5)Returns the finished selected image.

– finishedUnselectedImage(page 5)Returns the finished unselected image.

– setFinishedSelectedImage:withFinishedUnselectedImage:(page 7)Sets the finished selected and unselected images. 

上面的方法用於更改每個單獨的TabBarItem 選中及未選中的映像


2、UIBarButtonItem

style
(page 8)propertyThe style of the item.

possibleTitles
(page 7)property
The set of possible titles to display on the bar button.

width
(page 9)propertyThe width of the item.

customView
(page 7)property
A custom view representing the item. 


3、UINavigationBar

barStyle
(page 7)property
The appearance of the navigation bar.

shadowImage
(page 8)property
The shadow image to be used for the navigation bar.

translucent
(page 10)property
A Boolean value indicating whether the navigation bar is only partially opaque. 


基本上,把這些方法搞定,自訂就易如反掌了。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.