iOS Coding项目片段记录(一)

根据UIbutton中lable状态的不同显示不同的字体颜色效果如图:

#import <UIKit/UIKit.h>

#define RGB(r,g,b) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:1.0f]
#define DefaultTextNomalColor RGB(167,160,160)
#define DefaultTextSelectedColor [UIColor colorWithPatternImage:[UIImage imageNamed:[FUserInfo shareSingleton].navibar_bg_image]]
@interface UIButton (richText)

+ (NSMutableAttributedString*)titleRichInfoStr:(NSString *)strInfo normalRange:(NSRange)normalRange normalColor:(UIColor *)normalColor selectedRange:(NSRange)selectedRange  selectedColor:(UIColor *)selectedColor;
+ (void)allButtonShowStrInfoButton:(UIButton *)button infoStr:(NSString *)str;
+ (void)unReadButtonShowStrInfoButton:(UIButton *)button infoStr:(NSString *)str;
+ (void)trashButtonShowStrInfoButton:(UIButton *)button infoStr:(NSString *)str;
@end
#import "UIButton+richText.h"

@implementation UIButton (richText)
//根据长度来设置不同文字显示的颜色 样式
+ (NSMutableAttributedString*)titleRichInfoStr:(NSString *)strInfo normalRange:(NSRange)normalRange normalColor:(UIColor *)normalColor selectedRange:(NSRange)selectedRange  selectedColor:(UIColor *)selectedColor  {

    NSMutableAttributedString *AttributedStr = [[NSMutableAttributedString alloc]initWithString:strInfo];

    [AttributedStr addAttribute:NSForegroundColorAttributeName

                          value:normalColor

                          range:normalRange];
    [AttributedStr addAttribute:NSForegroundColorAttributeName

                          value:selectedColor

                          range:selectedRange];

    return AttributedStr;
}
+ (void)allButtonShowStrInfoButton:(UIButton *)button infoStr:(NSString *)str{
    NSMutableAttributedString *allNormalStr = [self titleRichInfoStr:str normalRange:NSMakeRange(0, 2) normalColor:DefaultTextNomalColor selectedRange:NSMakeRange(2, str.length-2) selectedColor:DefaultTextNomalColor];
    NSMutableAttributedString *allSelectStr = [self titleRichInfoStr:str normalRange:NSMakeRange(0, 2) normalColor:DefaultTextSelectedColor selectedRange:NSMakeRange(2, str.length-2) selectedColor:DefaultTextNomalColor];
    [button setAttributedTitle:allNormalStr forState:UIControlStateNormal];
    [button setAttributedTitle:allSelectStr forState:UIControlStateSelected];
}
+ (void)unReadButtonShowStrInfoButton:(UIButton *)button infoStr:(NSString *)str {
    NSMutableAttributedString *AttributedStr = [self titleRichInfoStr:str normalRange:NSMakeRange(0, 2) normalColor:DefaultTextNomalColor selectedRange:NSMakeRange(2, str.length-2) selectedColor:[UIColor redColor]];
    NSMutableAttributedString *AttributedSeletedStr = [self titleRichInfoStr:str normalRange:NSMakeRange(0, 2) normalColor:DefaultTextSelectedColor selectedRange:NSMakeRange(2, str.length-2) selectedColor:[UIColor redColor]];

    [button setAttributedTitle:AttributedStr forState:UIControlStateNormal];
    [button setAttributedTitle:AttributedSeletedStr forState:UIControlStateSelected];
}
+ (void)trashButtonShowStrInfoButton:(UIButton *)button infoStr:(NSString *)str {
    NSMutableAttributedString *trashNormalStr = [self titleRichInfoStr:str normalRange:NSMakeRange(0, 3) normalColor:DefaultTextNomalColor selectedRange:NSMakeRange(3, str.length-3) selectedColor:DefaultTextNomalColor];
    NSMutableAttributedString *trashSelectStr = [self titleRichInfoStr:str normalRange:NSMakeRange(0, 3) normalColor:DefaultTextSelectedColor selectedRange:NSMakeRange(3, str.length-3) selectedColor:DefaultTextNomalColor];
    [button setAttributedTitle:trashNormalStr forState:UIControlStateNormal];
    [button setAttributedTitle:trashSelectStr forState:UIControlStateSelected];
}
@end
时间: 2024-11-14 15:03:32

iOS Coding项目片段记录(一)的相关文章

iOS 开源项目

iOS 开源项目 在 Github 上 Star 太多了,有时候很难找到自己想要的开源库,所以在此记录下来.便于自己开发使用,也顺便分享给大家. 动画 awesome-ios-animation收集了iOS平台下比较主流炫酷的几款动画框架 RCTRefreshControlqq的下拉刷新 TBIconTransitionKiticon 的点击动画过渡效果 PullToBounce类似百度外卖的下拉刷新动画 LiquidFloatingActionButton可定制水滴型浮动动态按钮组件及演示 C

iOS开发项目篇—28自定义UITextView

iOS开发项目篇—28自定义UITextView 一.简单说明 1.要实现的效果 2.分析 (1)UITextField 1.最多只能输入一行文字 2.能设置提醒文字(placehoder) 3.不具备滚动功能 (2)UITextView 1.能输入N行文字(N>0) 2.不能设置提醒文字(没有placehoder属性) 3.具备滚动功能 需求:技能输入多行文字,又具备文字提醒功能. 这里选择自定义一个类,让其继承自UITextView类,为其添加一个设置文字提醒的功能. 二.实现 自定义UI控

iOS开发项目篇—20存储账号信息

iOS开发项目篇—20存储账号信息 一.简单说明 1.不论请求是否成功,都在发送Post请求后,隐藏遮罩. 2.在授权成功后,切换根控制器. (1)说明 切换到控制器有几种情况,要么是切换到新特性,要么是切换到“首页”. 没有必要每次进入程序都需要登录,且每次返回的数据都是一样的,所以只需要把拿到的信息保存到沙盒里就可以了. 判断上次有没有登录成功(把拿到的access_token保存到沙盒中,如果沙盒中有access_token,说明上次登录成功),如果上次登陆成功,那么就判断是否要进入新特性

iOS开发项目篇—36封装微博业务

iOS开发项目篇—36封装微博业务 一.简单说明 1.请求参数面向模型 2.请求结果面向模型 3.对控制器来说应该屏蔽业务细节.不让控制器关心(知道)业务细节,它只需要知道自己在做某个业务 @通过一个专门的业务处理类:处理微博业务细节 说明: 业务:加载新的微博首页数据 实现:给新浪服务器发送一个GET请求 业务:加载更多的首页微博数据 实现1:给新浪服务器发送一个GET请求 实现2:去沙盒中加载以前离线缓存的微博数据  二.实现 1.新建一个微博业务处理类,继承自NSObject 微博业务处理

iOS开发项目篇—08新版本特性&#183;SrollView

iOS开发项目篇—08新版本特性 一.简单说明 展示新版本的特性:第一次使用一些应用软件时,展示这个版本的软件的新特性,一般在第一次启动程序的时候显示. 1.什么情况下显示版本新特性: (1)第一次使用某个软件时(X) (2)第一次使用某个版本时,显示版本新特性(V) 2.怎么知道这个软件的版本呢? 在plist文件里,bundle version中显示版本号. 3.如何显示版本新特性? 应该在YYAppDelegate.m中进行判断: 如果是第一次使用这个版本,那么就显示版本新特性(设置为wi

iOS开发项目篇—21抽取工具类

iOS开发项目篇—21抽取工具类 一.抽取宏 把和应用相关的信息抽取出来 App Key:1972915028 App Secret:b255603c4dfd82b4785bf9a808ce2662 回调地址:http://www.cnblogs.com/wendingding/ (1)appkey和回调页面在很多地方都要用到 (2)如果是不同应用的话,只需要把这几个参数换掉就可以了.把它们抽取成一个宏,写到pch文件中. 项目的PCH文件 1 #import <Availability.h>

iOS开发项目篇—13标题栏设置

iOS开发项目篇—13标题栏设置 一.添加标题栏 代码: 1 #import "YYHomeTableViewController.h" 2 #import "YYOneViewController.h" 3 4 @interface YYHomeTableViewController () 5 6 @end 7 8 @implementation YYHomeTableViewController 9 10 - (id)initWithStyle:(UITable

OpenDigg iOS开源项目月报201704

由OpenDigg 出品的iOS开源项目月报第一期来啦.我们的iOS开源月报集合了OpenDigg一个月来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. Transition 构建iOS视图控制器转换的库 CHIPageControl 炫酷的动画页面控件 ReverseExtension 从底部TableView插入单元格 LazyScrollView 解决异构滚动视图的复用回收 FengNiao 从Xcode删除无用的图片源文件 Marathon 编写运行管理

iOS开源项目(新)

初学者有了一些基础后,读源码是很好的学习和进阶方式,但是一定要选对源码.选好源码.刚才还在某社区怒喷别人分享的烂资源误人子弟,分享一些二把刀子写的「高仿XXX」源码,真是不能忍.如果你问我喷对我有啥好处,能想到的只有两个字:情(zhuang)怀(b). OK,下面推荐几个业界良心,awesome系列: https://github.com/vsouza/awesome-ioshttps://github.com/joeljfischer/awesome-apple Swift: matteocr