RXExtenstion
- 基于 >= iOS7
Wiki
扩展方法
,方便开发;
2、主要是带有效果展示
UILabel自适应高度的3种方法
1、 //label高度
CGFloat _textHeight = 0;
//第一种 -- 可以得到宽高 -- 前提一个无线大
//不能对富文本赋值后的计算
_textHeight = [label textRectForBounds:frame limitedToNumberOfLines:1].size.height;
//第二种 -- 可以得到宽高
//1)确定行数,进行剪切
//2)不确定行数,宽高一个无限大,进行剪切
[label sizeToFit];
_textHeight = label.frame.size.height;
_textWidth = label.frame.size.width;
//第三种 对于特殊文字、字符,计算的结果并不满人意
CGFloat width = 200;//当宽度是已知的。
_textHeight = [label boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin |NSStringDrawingUsesFontLeading
attributes: @{NSFontAttributeName: label.font}
context:nil].size.height;
1、看看效果
2、封装AFNetworking
自定义点餐的菜单功能
3、
这里我只是做了个框架,具体的界面美化和数据等等根据需求自己完善。而这个框架主要提供思路。
封装假数据
4、上面的不知道你观察了没有,很多文字、日期 + 时间、数字、图片等等 都是来自于 自动生成假数据 的类。下面介绍下:
@interface RXRandom : NSObject
/// 随机日期-最近一个月随机
+ (NSString *)randomDateString;
/// 随机日期---- 几个月随机
+ (NSString *)randomDateStringWithinCount:(NSInteger)count;
///可以返回最近30天,最近几个小时等等操作,需要改内部
/// 随机汉字--100 以内
+ (NSString *)randomChinas;
/// 随机汉字--count 以内
+ (NSString *)randomChinasWithinCount:(NSInteger)count;
/// 字符串 -- 不定长
+ (NSString *)randomString;
/// 随机字母 - 26个
+ (NSString *)randomLetter;
+ (NSString *)randomLetterWithInCount:(NSInteger)count;
/// 随机 给出 图片网址
+ (NSString *) randomImageURL;
/// 随机颜色
+ (UIColor *)randomColor;
/// 返回当前日期时间
+ (double)randomNowDate;
/// 随机倒计时日期时间 (前提是大于当前时间)
+ (NSString *)randomTimeCountdown;
@end
字符处理 、数组、 字典 -> 空处理
5、 #import "RXCharacter.h"
@implementation RXCaCheController
- (void)viewDidLoad {
[super viewDidLoad];
NSString * string = @"https://github.com/srxboys";
if(StrBool(string)) {
//是否为字符串
}
if(UrlBool(string)) {
//是否为 网址
}
if(ArrBool(string)) {
//是否为 数组
}
//参数 空处理
string = @"0"; // or --> string = @"<null>"
NSString * dictionaryValue = [string strNotEmptyValue];
RXLog(@"dictValue=%@", dictionaryValue);
}
@end
收货地址 地区 选择样式
6、//导入封装的UIView
#import "RXOneLinkageTreeAddress.h"
#import "RXThreeLinkageAddress.h"
#import "RXJDAddressPickerView.h"
//初始化 并 实现block回调方法
weak(weakSelf);
_onePicker = [[RXOneLinkageTreeAddress alloc] init];
_onePicker.isShow = ^ (BOOL isShow, NSString *address,
NSString * addressCode){
RXLog(@"_onePicker\nisShow=%@, address=%@,
addressCode=%@\n\n", isShow ? @"是" : @"否`",
address, addressCode);
weakSelf.addressLabel.text = [NSString stringWithFormat:
@"_onePicker isShow=%@, address=%@, addressCode=%@",
isShow ? @"是" : @"否`", address, addressCode];
};
_twoPicker = [[RXThreeLinkageAddress alloc] init];
_twoPicker.isShow = ^ (BOOL isShow, NSString *address,
NSString * addressCode){
RXLog(@"_twoPicker\nisShow=%@, address=%@,
addressCode=%@\n\n", isShow ? @"是" : @"否",
address, addressCode);
weakSelf.addressLabel.text = [NSString stringWithFormat:
@"_twoPicker isShow=%@, address=%@, addressCode=%@",
isShow ? @"是" : @"否", address, addressCode];
};
_threePicker = [[RXJDAddressPickerView alloc] init];
_threePicker.completion = ^(NSString *address,
NSString * addressCode){
RXLog(@"_threePicker\n, address=%@, addressCode=%@\n\n", address, addressCode);
weakSelf.addressLabel.text = [NSString stringWithFormat:@"_threePicker ,
address=%@, addressCode=%@",address, addressCode];
};
// -- 我的项目 是把 这些 添加 appDelegate.window 上 --
//调用 收货地址 选择 省/市/区 显示控件
// 1级 3联动
[_onePicker showAddressView];
// 3级联动
[_twoPicker show];
//仿照京东v1.5.0
[_threePicker showAddress];
日期、时间 选择样式
7、 _nomalDatePicker = [[RXNomalDatePicker alloc] init];
_nomalDatePicker.isShow = ^(BOOL isShow, NSDate * date) {
RXLog(@"%d %@", isShow, date);
weakSelf.resultLabel.text = [NSString stringWithFormat:@"%@", date];
};
_datePicker = [[RXDatePicker alloc] init];
_datePicker.isShow = ^(BOOL isShow, NSDate * date) {
RXLog(@"%d %@", isShow, date);
weakSelf.resultLabel.text = [NSString stringWithFormat:@"%@", date];
};
_dateTimePicker = [[RXDateTimePicker alloc] init];
_dateTimePicker.pickerComple = ^(BOOL isShow, NSString * dateString) {
RXLog(@"%d %@", isShow, dateString);
weakSelf.resultLabel.text = dateString;
};
[self.view addSubview:_nomalDatePicker];
[self.view addSubview:_datePicker];
[self.view addSubview:_dateTimePicker];
//调用 日期、时间 选择样式 显示控件
[_nomalDatePicker show];
[_datePicker show];
[_dateTimePicker showDatePickerView];
3D Touch 自定制
8、
我的demo 百度网盘
不是技术的技术博客
接口必传字段处理
RXLog
更新日志 -> WIKI
~ ~ ~ coding ~ ~ ~
此项目主要是以框架为主,方法为辅。方便开发。
如果你有想说的可以 issues I 。
如果你有更好的改进,please pull reqeust me