IOS-UIBarButtonItem的图片文字点击效果

Tip:为什么设置文字的某个状态时需要将其内容封装为NSDictionary?这是因为字体所关联的一系列属性,如字体风格 字体颜色等。

设置图片等多状态的代码风格,以下是一种,常见的其他控件设置多状态一般也是以方法名set开头(以Statexxx结尾),假如只有一种状态,那么直接使用 点( . )语法设置即可。


#pragma 处理字体点击效果
- (void)dealWithItemFont:(UITabBarItem *)messageItem
{
    NSMutableDictionary *dic=[NSMutableDictionary dictionary];
    [dic setValue:[UIColor grayColor] forKey:NSForegroundColorAttributeName];
    [messageItem setTitleTextAttributes:dic forState:UIControlStateNormal ];
    NSMutableDictionary *hightlineDic=[NSMutableDictionary dictionary];
    [hightlineDic setValue:[UIColor orangeColor] forKey:NSForegroundColorAttributeName];
    [messageItem setTitleTextAttributes:hightlineDic forState:UIControlStateHighlighted];
}

#pragma 处理图片点击效果
- (UITabBarItem *)dealWithItemImage:(NSString *)normalImageStr selectedImageStr:(NSString *)selectedImageStr
{
    UIImage *normalImage=[UIImage imageNamed:normalImageStr];
    
    UIImage *selectedImage=[UIImage imageNamed:selectedImageStr];
    selectedImage=[selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    UITabBarItem *messageItem=[[UITabBarItem alloc] init];
    [messageItem setImage:normalImage];
    [messageItem setSelectedImage:selectedImage];
    return messageItem;
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。