Appearance

作者: ttys苹果核 | 来源:发表于2015-12-22 17:19 被阅读4096次

    Appearance Proxies

    UIAppearance是一个协议

    @protocol UIAppearance <NSObject>
    

    UIView默认已经遵守了这个协议

    @interface UIView : UIResponder <NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem, UITraitEnvironment, UICoordinateSpace, UIFocusEnvironment>
    

    来看看UIAppearance都有什么方法

    + (instancetype)appearance;
    + (instancetype)appearanceWhenContainedIn:(nullable Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION NS_DEPRECATED_IOS(5_0, 9_0, "Use +appearanceWhenContainedInInstancesOfClasses: instead") __TVOS_PROHIBITED;
    + (instancetype)appearanceWhenContainedInInstancesOfClasses:(NSArray<Class <UIAppearanceContainer>> *)containerTypes NS_AVAILABLE_IOS(9_0);
    + (instancetype)appearanceForTraitCollection:(UITraitCollection *)trait NS_AVAILABLE_IOS(8_0);
    + (instancetype)appearanceForTraitCollection:(UITraitCollection *)trait whenContainedIn:(nullable Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION NS_DEPRECATED_IOS(8_0, 9_0, "Use +appearanceForTraitCollection:whenContainedInInstancesOfClasses: instead") __TVOS_PROHIBITED;
    + (instancetype)appearanceForTraitCollection:(UITraitCollection *)trait whenContainedInInstancesOfClasses:(NSArray<Class <UIAppearanceContainer>> *)containerTypes  NS_AVAILABLE_IOS(9_0);
    

    让某一类控件同时表现某种属性

    [[UIButton appearance] setBackgroundColor:[UIColor blackColor]];
    [[UIButton appearance] setTitle:@"呵呵哒" forState:UIControlStateNormal];
    

    让某一类控件在另一种控件中同时变现某种属性

    [[UIButton appearanceWhenContainedInInstancesOfClasses:@[[UIView class]]] setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
    

    上面这句话的意思 就是----使UIView上面的UIButton的titleColor都变成灰色的
    效果的话大家可以自己试试。

    相关文章

      网友评论

        本文标题:Appearance

        本文链接:https://www.haomeiwen.com/subject/qakshttx.html