Skip to content
This repository has been archived by the owner on Nov 10, 2020. It is now read-only.
/ RXExtenstion Public archive

iOS 项目基本框架(label自适应高度、菜单功能、地址选择器、日期时间选择器、自动生成假数据......) / iOS Project basic framework (Label adaptive height, menu function, address selector, date time selector, automatic generation of false data, etc.) 【srxboys】-- coding

License

Notifications You must be signed in to change notification settings

srxboys/RXExtenstion

Repository files navigation

RXExtenstion

Platform Language Language_swift Language_C License
图片来源: http://shields.io

  • 基于 >= iOS7

Wiki


iOS 项目基本框架

1、简易的MVC框架;

2、主要是扩展方法,方便开发;

3、避免常见的bug。


带有效果展示

1、UILabel自适应高度的3种方法

    //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、看看效果

srxboys srxboys srxboys



3、自定义点餐的菜单功能

###只是简简单单的框架 srxboys

这里我只是做了个框架,具体的界面美化和数据等等根据需求自己完善。而这个框架主要提供思路。


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

srxboys


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、收货地址 地区 选择样式

调用 收货地址 选择 省/市/区 显示控件

    // 1级 3联动
    #import "RXOneLinkageTreeAddress.h"

    // 3级联动
    #import "RXThreeLinkageAddress.h"

    //仿照京东v1.5.0
    #import "RXJDAddressPickerView.h"

srxboys


7、日期、时间 选择样式

调用 日期、时间 选择样式 显示控件

    //系统4种样式
    #import "RXNomalDatePicker.h"
    
    //系统日期自定义样式
    #import "RXDatePicker.h"
    
    //自封装样式
    #import "RXDateTimePicker.h"
    
    //调用者自定义样式
    #import "RXPickerView.h"

srxboys


8、3D Touch 自定制

srxboys



接口必传字段处理

srxboys

RXLog

srxboys_rxlog

~ ~ ~ coding ~ ~ ~

此项目主要是以框架为主,方法为辅。方便开发。 如果你有想说的可以 issues I
如果你有更好的改进,please pull reqeust me
😅😅😅😅😅

About

iOS 项目基本框架(label自适应高度、菜单功能、地址选择器、日期时间选择器、自动生成假数据......) / iOS Project basic framework (Label adaptive height, menu function, address selector, date time selector, automatic generation of false data, etc.) 【srxboys】-- coding

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published