zoukankan      html  css  js  c++  java
  • UIBarButtonItem关于全局修改,局部修改

    全局修改:把所有UIBarButtonItem(或者一个控件)设为同一风格。

    局部修改:根据一定条件把一部分UIBarButtonItem(或者一个控件)设为同一风格

    有时侯你想把导航条左侧的所有按钮的外观,字体设置为同一风格,但你并不想把导航条左侧按钮外观字体或背景全部用以下代码来更改,如果这样改,有两个UIBarButtonItem,你就要写两次,这样写代码过于赘余,苹果提供了更好的方法统一设置。

    UIBarButtonItem *rightItem = [YBarButtonItem barButtonWithStyle:YBarButtonStyleRoundedRectangle  
                                                              Title:@"Save"  
                                                              Action:@selector(saveButtonClicked)  
                                                            Delegate:self];  
      
    self.navigationItem.leftBarButtonItem = rightItem;   
    这里就有个方法可以进行全局或局部的修改:
    !!!---本人开始用的时候也觉得奇怪,appearance方法怎么可以设置让所有同一种控件都为同一种风格,只能说是苹果太强大,他封装的了一个工具类UIAppearance可以统一设置控件的风格,当调用appearance方法时他会拿到相对应的控件(你用什么控件调用appearace方法,他就会返回什么控件),然后你可以设置统一主题(风格)---!!!
    iOS5提供了一个比较强大的工具UIAppearance,可以轻松的统一你的界面,它提供如下两个方法:
    + (id)appearance
    + (id)appearanceWhenContainedIn:(Class <>)ContainerClass,...
    第一个方法是统一全部改,比如你设置UINavigationBar 的tintColor,你可以这样写:
    [[UINavigationBar appearance] setTintColor:myColor];
    /**
       这样写之后,所有的 UINavigationBar 的tintColor的颜色都为myColor
    */
    第二个方法是当出现在某个类的出现时候才会改变:例如:
    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [UIPopoverController class], nil] setTintColor:myPopoverNavBarColor];
     
    1.修改背景: 
    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:leftButton  
                                                          forState:0  
                                                        barMetrics:UIBarMetricsDefault];  
     
    2.修改字体,阴影,字体颜色
    NSDictionary* textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:  
                                       BAR_BUTTON_TITLE_TEXT_COLOR,UITextAttributeTextColor,  
                                       BAR_BUTTON_TITLE_FONT,UITextAttributeFont,  
                                       BAR_BUTTON_TITLE_SHADOW_COLOR,UITextAttributeTextShadowColor,  
                                       [NSValue valueWithCGSize:CGSizeMake(1, 1)],UITextAttributeTextShadowOffset,  
                                       nil];  
      
       [[UIBarButtonItem appearance] setTitleTextAttributes:textAttributes forState:0];  
    3,修改UIBarButtonItem中文字的位置:
    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(2, -1)  
                                                           forBarMetrics:UIBarMetricsDefault];  
  • 相关阅读:
    积水路面Wet Road Materials 2.3
    门控时钟问题
    饮料机问题
    Codeforces Round #340 (Div. 2) E. XOR and Favorite Number (莫队)
    Educational Codeforces Round 82 (Rated for Div. 2)部分题解
    Educational Codeforces Round 86 (Rated for Div. 2)部分题解
    Grakn Forces 2020部分题解
    2020 年百度之星·程序设计大赛
    POJ Nearest Common Ancestors (RMQ+树上dfs序求LCA)
    算法竞赛进阶指南 聚会 (LCA)
  • 原文地址:https://www.cnblogs.com/Fc-ios/p/3794163.html
Copyright © 2011-2022 走看看