Coder Social home page Coder Social logo

zhaomengshan / lqclass Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xztllq/lqclass

0.0 2.0 0.0 1.33 MB

页面常用体验功能:输入框键盘自动补位,点击页面或滑动页面隐藏键盘,加载中背景动画,点击背景刷新,显示无数据背景提示(自定义强度高,支持之定义view,或替换gif),加载失败背景提示。快速集成调用下拉刷新,上拉加载更多(pod 集成MJRefresh)等等常用页面细节处理。能帮助开发人员快速开发页面功能,节约大量细节调控时间!

Objective-C 99.87% Ruby 0.13%

lqclass's Introduction

LQ系列--UI

LQPhotoPickerDemo - https://github.com/XZTLLQ/LQClass (可节约项目大量细节调控时间,体验好!)

LQPhotoPickerDemo - https://github.com/XZTLLQ/LQPhotoPickerDemo (选择图片上传)

LQIMInputView - https://github.com/XZTLLQ/LQIMInputView (聊天页面工具栏)

LQClass

支持:

LQViewController (父类UIViewController)

LQTableViewController (父类UITableViewController)

LQCollectionViewController (父类UICollectionViewController)

LQWebView (父类UIView)使用了(WKWebView)

功能简介:

页面常用体验功能:输入框键盘自动补位,点击页面或滑动页面隐藏键盘,加载中背景动画,点击背景刷新,显示无数据背景提示(自定义强度高,支持之定义view,或替换gif),加载失败背景提示。快速集成调用下拉刷新,上拉加载更多(pod 集成MJRefresh)等等常用页面细节处理。能帮助开发人员快速开发页面功能,节约大量细节调控时间!

效果图:

集成代码:

因为源码制作本意是快速帮助APP全局配置页面体验效果,所以推荐继承方式集成.项目中集成下拉刷新与上拉加载更多使用的是:MJRefresh(pod方式集成),请自行添加。

几行代码实现功能(demo源码有示例):

#import "LQTableViewController.h"

@interface testTableViewController : LQTableViewController

@end
- (void)viewDidLoad {
    [super viewDidLoad];
    
    //加载数据
    [self noDataBeginRefresh];
    
    //(避免循环引用)
    __weak typeof(self) weakSelf = self;
    //下拉刷新
    [self addPullRefreshWithBlock:^{
        [weakSelf noDataBeginRefresh];
    }];
    
    //上拉加载更多
    [self addMoreLoadingWithBlock:^{
        [weakSelf noDataBeginRefresh];
    }];
}

#pragma mark - 点击背景刷新时执行
- (void)noDataBeginRefresh {
    [self getDataFromServer];
}

#pragma mark - 从服务器获得数据(异步)
- (void)getDataFromServer {
    
    //显示背景加载
    [self lq_showLoading];//(使用1)
    
    //发出网络请求(异步)
    //推迟两纳秒执行(模拟网络请求)
    dispatch_queue_t concurrentQueue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), concurrentQueue, ^(void){
        //网络请求回调结果:(回到主线程)
        dispatch_async(dispatch_get_main_queue(), ^{
        
            //更新UI操作
            [self lq_endLoading];//(使用2)
            
            if (@"服务器请求成功") {
                
                if (@"服务器返回无数据") {
                    [self lq_showFailLoadWithType:LQTableViewFailLoadViewTypeNoData tipsString:@"暂无数据,点击屏幕刷新"];//(使用3)
                } else {
                    //成功有数据业务逻辑
                }
            } else {
                [self lq_showFailLoadWithType:LQTableViewFailLoadViewTypeDefault tipsString:@"加载失败,点击屏幕重新加载"];//(使用4)
            }
        });
    });
    
}

自定义修改源码(大部分都在.h文件说明,此处简要介绍其他):

列:LQTableViewController:(其他类相同使用方法,类似设计)

- (void)viewDidLoad {
    [super viewDidLoad];
    /**
     *  添加footView,去除多余分割线
     */
    if (!self.tableView.tableFooterView) {
        [self setExtraCellLineHidden];
    }
    
    //收起键盘设置
    [self setHideKeyBoardTap];
    
    _lq_loadingGifName = @"lq_loading.gif";
    _lq_loadingViewType  = LQTableViewLoadingViewTypeGif;
    //    _lq_loadingViewType  = LQTableViewLoadingViewTypeDefault;
    
    _lq_failLoadViewType = LQTableViewFailLoadViewTypeDefault;
    
    self.tableView.backgroundColor = [UIColor colorWithRed: 248.0/255.0 green:248.0/255.0 blue:248.0/255.0 alpha:1.0];
    
    self.tableView.separatorColor = [UIColor colorWithRed: 231.0/255.0 green:231.0/255.0 blue:231.0/255.0 alpha:1.0];
}

_lq_loadingViewType(加载中)对应枚举值:

LQTableViewLoadingViewTypeDefault = 0,//默认菊花加载动画
LQTableViewLoadingViewTypeGif,//gif加载动画,想要替换自己的gif直接在LQResource目录下替换同名文件即可
LQTableViewLoadingViewTypeCustom,//加载过程显示自定义view

_lq_failLoadViewType(加载失败或空数据)对应枚举值:

    LQTableViewFailLoadViewTypeDefault = 0,//默认数据加载失败(感叹号图)
    LQTableViewFailLoadViewTypeNoData,//显示空数据背景(直接在LQResource目录下替换同名文件即可)
    LQTableViewFailLoadViewTypeGif,//gif加载动画,想要替换自己的gif直接在LQResource目录下替换同名文件即可
    LQTableViewFailLoadViewTypeCustom//加载结束显示自定义view

三方源码来源声明:

CLKeyboardOffsetView(键盘补位),MJRefresh(下拉刷新),YLGIFImage(gif图片加载)

lqclass's People

Contributors

xztl avatar

Watchers

James Cloos avatar zhaomengshan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.