前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS开源组件分类总结

iOS开源组件分类总结

作者头像
码客说
发布2019-10-22 14:46:27
8760
发布2019-10-22 14:46:27
举报
文章被收录于专栏:码客码客

下拉刷新

ZJRefreshControl

ZJRefreshControl

下拉刷新 加载更多

Swift

调用方式

//只有下拉刷新
refreshControl = ZJRefreshControl(scrollView: appTableView, refreshBlock: {
        self.dropViewDidBeginRefreshing()
})

//下拉刷新和上拉加载更多
refreshControl = ZJRefreshControl(scrollView: msgTableView,refreshBlock: {
            self.dropViewDidBeginRefreshing();
        },loadmoreBlock: {
            self.dropViewDidBeginLoadmore();
});

//下拉刷新调用的方法
func dropViewDidBeginRefreshing()->Void{
    println("-----刷新数据-----");
    self.delay(1.5, closure: {
        //结束下拉刷新必须调用
      self.refreshControl.endRefreshing();
    });
}

//上拉加载更多调用的方法
func dropViewDidBeginLoadmore()->Void{
    println("-----加载数据-----");
    self.delay(1.5, closure: {
        //结束加载更多必须调用
      self.refreshControl.endLoadingmore();
    });
}

//延迟执行方法
func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
}

图片/视频选择

DNImagePicker

DNImagePicker

图片选择

Objective-C

调用方式


//代理 DNImagePickerControllerDelegate

let imagePicker = DNImagePickerController();
imagePicker.imagePickerDelegate = self;
imagePicker.filterType = DNImagePickerFilterType.Photos;
imagePicker.navigationBar.tintColor = UIColor.whiteColor();
self.presentViewController(imagePicker, animated: true, completion: nil);

//代理方法
func dnImagePickerControllerDidCancel(imagePicker: DNImagePickerController!) {
    imagePicker.dismissViewControllerAnimated(true, completion: nil);
}
    
func dnImagePickerController(imagePicker: DNImagePickerController!, sendImages imageAssets: [AnyObject]!, isFullImage fullImage: Bool) {
    
    if(imageAssets.count > 1){
        self.showNoticeErr("只能选择一张图片", time: 1.2);
    }else{
        let dnasset = imageAssets[0] as! DNAsset;
        DNAsset.getALAsset(dnasset, callback: { (alasset) in
            if(alasset != nil){
                let representation =  alasset.defaultRepresentation()
                let image = UIImage(CGImage:representation.fullResolutionImage().takeUnretainedValue())
                let data = ZJ_ImageUtils.imageCompressJPG(image);
            }
        })
    }
}

弹出层

DOAlertController

DOAlertController

弹出确认取消的层

Swift

调用方式

let alertController = DOAlertController(title: "新建文件夹", message: "", preferredStyle: .Alert)
alertController.addTextFieldWithConfigurationHandler { textField in
    textField.placeholder = "请输入文件夹的名称";
}
let cancelAction = DOAlertAction(title: "取消", style: .Cancel, handler: nil)
let okAction = DOAlertAction(title: "确认" ,style: .Default) { action in
    
}
alertController.addAction(cancelAction)
alertController.addAction(okAction)
presentViewController(alertController, animated: true, completion: nil)

Sphere Menu

Sphere Menu

弹出按钮菜单

Swift

调用方式

//实现代理 DNImagePickerControllerDelegate

func addMenu() {
    let start = UIImage(named: "start")
    let image1 = UIImage(named: "icon_file_menu_folder")
    let image2 = UIImage(named: "icon_file_menu_img")
    let image3 = UIImage(named: "icon_file_menu_movie")
    let images:[UIImage] = [image1!,image2!,image3!]
    menu = SphereMenu(startPoint: CGPointMake(screenWidth-40, screenHeight-100), startImage: start!, submenuImages:images, tapToDismiss:true)
    menu.delegate = self
    self.view.addSubview(menu)
}

//代理方法
func sphereDidSelected(index: Int) {
    if(index == 0){
        chooseFolder();
    }else if(index == 1){
        chooseImage();
    }else if(index == 2){
        chooseVideo();
    }
    
}

//隐藏菜单
self.menu.hideViewToBottom();

//显示菜单
self.menu.showView();

侧滑菜单

RESideMenu

RESideMenu

侧滑菜单

Objective-C

TableViewCell侧滑

MGSwipeTableCell

MGSwipeTableCell

TableViewCell侧滑

Objective-C

调用方式

  • 1 引用头文件
//侧滑按钮
#import "MGSwipeButton.h"
#import "MGSwipeTableCell.h"
  • 2 需要侧滑的tableViewCell继承MGSwipeTableCell
  • 3 Controller实现接口MGSwipeTableCellDelegate
  • 4 相关代码
func createRightButtons() -> Array<MGSwipeButton>{
    var buttonArray = Array<MGSwipeButton>();
    let titleArray = [
        "",
        //""
    ];
    let iconArray = [
        UIImage(named: "cell_cross.png"),
        //UIImage(named: "cell_menu.png"),
    ];
    let backgroundColorArray = [
        UIColor(red: 1, green: 102/255, blue: 102/255, alpha: 1),
        //UIColor(red: 104/255, green: 187/255, blue: 248/255, alpha: 1),
    ];
    
    let insets = UIEdgeInsets(top: 0, left: 30, bottom: 0, right: 30);
    
    for i in 0  ..< titleArray.count  {
        let button = MGSwipeButton(title: titleArray[i], icon: iconArray[i], backgroundColor: backgroundColorArray[i],insets: insets);
        buttonArray.append(button);
    }
    
    return buttonArray;
}
    
func swipeTableCell(cell: MGSwipeTableCell!, tappedButtonAtIndex index: Int, direction: MGSwipeDirection, fromExpansion: Bool) -> Bool {
    if(index == 0){
        let indexPath = tableView.indexPathForCell(cell);
        print("点击了\(indexPath)")
    }
    return true;
}
  • 5 cell中调用
cell.rightButtons = createRightButtons();
cell.rightSwipeSettings.transition = MGSwipeTransition.Border;
cell.delegate = self;

数据库

SQLiteDB

SQLiteDB

操作Sqlite数据库

Swift

调用方式

let db = SQLiteDB.sharedInstance()
let data = db.query("SELECT * FROM customers WHERE name='John'")
let row = data[0]
if let name = row["name"] {
    textLabel.text = name as! String
}

数据请求

Swift数据请求常用的三个库

Alamofire

网络请求库

Swift

SwiftyJSON

转JSON

Swift

Alamofire-SwiftyJSON

方便以上两个组件的结合使用

Swift

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下拉刷新
    • ZJRefreshControl
    • 图片/视频选择
      • DNImagePicker
      • 弹出层
        • DOAlertController
          • Sphere Menu
          • 侧滑菜单
            • RESideMenu
            • TableViewCell侧滑
              • MGSwipeTableCell
              • 数据库
                • SQLiteDB
                • 数据请求
                  • Swift数据请求常用的三个库
                  相关产品与服务
                  数据库
                  云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档