Swift 写一个简单界面(实战-新手)

原文链接

在这篇博文中你可以看到那些内容呢, 首先这是一个用tableView纯代码Swift写的简单界面, 你可以看到下面这些

- 使用Alamofire 进行网络请求

- 使用MJExtension 进行字典转模型

- 使用HanekeSwift 进行图片的赋值

- 如何写一个模型(M)

- 如何自定义一个UITableViewCell

Alamofire 简单网络请求
func XTNetworkReq(url: String){
        print("SUMMER_TEST_1")
        Alamofire.request(.GET, url, parameters: nil)
            .validate(contentType: ["application/json", "text/json", "text/javascript", "text/html","text/css", "text/plain","application/x-javascript"])
            .responseJSON { response in
                switch response.result {
                case .Success:
                // print("Validation Successful: \\\\(response.result.value)")
                // json 转化成字典
                // 并进行数据解析
                let jsonDataDic = response.result.value as? NSDictionary
                let dataDic = jsonDataDic?.objectForKey("data")
                let listArray = dataDic?.objectForKey("list")
                print(listArray)
                // 字典转模型(MJExtension)
                self.dataArray = AlamofireVCModel.mj_objectArrayWithKeyValuesArray(listArray)
                if self.dataArray.count > 0
                {
                    // 进行UI刷新操作
                    self.tableView.reloadData()
                }
                case .Failure(let error):
                    print(error)
                }
        }
    }

参照 Alamofire API_ 链接

参照 MJExtension API_ 链接

如何写一个模型
class AlamofireVCModel: NSObject {
    var id:       Int = 0
    var title:    String?
    var pic:      String?
    var readnum:  String?
    var replynum: String?
}
如何自定义一个Cell
    var alaModel = AlamofireVCModel()
    var imagePic = UIImageView()
    var labelTitle = UILabel()
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: UITableViewCellStyle.Default, reuseIdentifier: reuseIdentifier)
        self.createCellSubviews()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    // MARK: - 布局UI
    func createCellSubviews(){
        imagePic = UIImageView.init(frame: CGRectMake(5, 5, self.contentView.frame.size.width - 10, 188 - 10))
        self.contentView.addSubview(imagePic)

        labelTitle = UILabel.init(frame: CGRectMake(10, 10, s_w, 60))
        labelTitle.numberOfLines = 0
        labelTitle.textColor = UIColor ( red: 1.0, green: 0.4666, blue: 0.3002, alpha: 1.0 )
        imagePic.addSubview(labelTitle)
    }
    // MARK: - layoutSubviews
    override func layoutSubviews() {
        if (self.alaModel.pic != nil && self.alaModel.pic?.hasSuffix("gif") != nil){
            // 进行图片的赋值, 这里给出的截取字符串的方法
            self.imagePic.hnk_setImageFromURL(NSURL.init(string: (self.alaModel.pic?.substringToIndex((self.alaModel.pic?.startIndex.advancedBy(66))!))!)!)
        }
        self.labelTitle.text = self.alaModel.title
    }

iOS 走进Facebook POP的世界

Swift版本仿网易云音乐播放音乐动画效果

三分钟教你把代码托管到Github

Swift 很强大的图表库-Charts使用 – 简书

Swift版仿简书App淘宝App很友好弹出view效果

iOS UICollectionView高级用法“长按自由移动cell重排

iOS仿微信App添加带箭头的view

iOS仿美团外卖饿了吗App点餐动画

你要的Swift资料

—————————————
走心文章, 值得点赞 —文/夏天然后
微博@夏天是个大人了 QQQ: 498143780
—————————————
时间: 2024-12-11 07:54:24

Swift 写一个简单界面(实战-新手)的相关文章

swift写一个简单的列表unable to dequeue a cell with identifier reuseIdentifier - must register a nib or a cla

报错:unable to dequeue a cell with identifier reuseIdentifier - must register a nib or a class for the identifier or connect a prototype cell in a storyboard 解决方法:在identifier里添加代码里自己写的标示

DuiVision开发教程(2)-如何写一个简单的界面程序

基于DuiVision界面库开发的界面程序主要包括如下几部分内容: 1.资源定义,包括图片资源.各个窗口界面的xml定义文件 2.事件处理类代码,用于处理界面响应消息 3.其他业务逻辑代码 下面举例说明如何写一个简单的界面程序. 第一步:使用VC向导创建一个有两个tab页面的DuiVision工程 向导生成的解决方案文件如下: 默认有两个工程,分别是DuiVision库和应用程序工程.自动生成的代码目录中bin目录下的内容那个如下,bkimg目录存放窗口背景图片,skins目录存放图片资源,xm

编译原理实战入门:用 JavaScript 写一个简单的四则运算编译器(四)结语

四则运算编译器,虽然说功能很简单,只能编译四则运算表达式.但是编译原理前端部分几乎都有涉及,词法分析,语法分析,还有代码生成. 再复杂的编译器.再简单的编译器,功能上是差不多的,只是复杂的编译器实现上会更困难. 这个系列的文章是为了帮助你入门,在这个基础上再去看编译原理相关书籍,不至于打瞌睡. 如果你对编译原理很有兴趣,并且想更深一步的学习,在这里强烈推荐你看一本书--我心目中的神书--<计算机系统要素-从零开始构建现代计算机>. 这本书神在哪? 神在它通俗易懂,对小白足够友好,但又不过分肤浅

Java写一个简单学生管理系统

其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来做一个有界面的学生管理系统.其实都并不会太难. 今天我就先写一个简单的用List来实现学生管理系统: 首先,管理系统是针对学生对象的,所以我们先把学生对象就写出来: package bean; public class Student { String name; String studentId;

用CSS写一个简单的幻灯片效果页面

这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [用CSS写一个简单的幻灯片效果页面] 1.背景介绍CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation. transform属性向元素应用2D或3D转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. transition是令一个或多个可以用数值表示的css属性值

利用SpringBoot+Logback手写一个简单的链路追踪

目录 一.实现原理 二.代码实战 三.测试 最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简单的链路追踪,下面详细介绍下. 一.实现原理 Spring Boot默认使用LogBack日志系统,并且已经引入了相关的jar包,所以我们无需任何配置便可以使用LogBack打印日志. MDC(Mapped Diagnostic Context,映射调试上下文)是log4j和logback提供的一种

用C写一个简单的推箱子游戏(一)

我现在在读大二,我们有一门课程叫<操作系统>,课程考查要求我们可以写一段程序或者写Windows.iOS.Mac的发展历程.后面我结合网上的资料参考,就想用自己之前简单学过的C写一关的推箱子小程序. 这一程序主要用到了C语言中的二维数组,头文件#include<conio.h>(因为要调用getch()函数以记录输入内容),switch函数等. 一.     功能概述 a)   游戏规则概述 玩家通过键盘输入W.S.A.D四键或者“↑”.“↓”.“←”.“→”四个方向键推动箱子,而

linux设备驱动第三篇:写一个简单的字符设备驱动

在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动.本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存. 下面就开始学习如何写一个简单的字符设备驱动.首先我们来分解一下字符设备驱动都有那些结构或者方法组成,也就是说实现一个可以使用的字符设备驱动我们必须做些什么工作. 1.主设备号和次设备号 对于字符设备的访问是通过文件系统中的设备名称进行的.他们通常位于/dev目录下.如下: [plain] vie

(2)自己写一个简单的servle容器

自己写一个简单的servlet,能够跑一个简单的servlet,说明一下逻辑. 首先是写一个简单的servlet,这就关联到javax.servlet和javax.servlet.http这两个包的类,其中一个比较重要的接口就是:javax.servlet.Servlet,所有的servlet必须实现实现或者继承实现该接口的类. Servlet接口有五个方法: public void init(ServletConfig config) throws ServletException publi