swift学习第六天 项目实战-知乎日报客户端(二)界面开发UITableView

现在我们可以将上章节里面从服务器获取的json数据显示到界面上了,这里我们用UITableView来显示。

首先我们自定义一个UITableViewCell,命名为NewsCell,操作步骤如下:

这样会得到下面的文件:

好了,cell制作完之后,我们开始初始化UITableView

 //tableView
 tabNewList.delegate=self
 tabNewList.dataSource=self
 var nib = UINib(nibName:"NewsCell", bundle: nil)
 self.tabNewList?.registerNib(nib, forCellReuseIdentifier: identifier)

适配UITableView

 1    func numberOfSectionsInTableView(tableView: UITableView?) -> Int {
 2         // #warning Potentially incomplete method implementation.
 3         // Return the number of sections.
 4         return 1
 5     }
 6
 7
 8     func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat
 9     {
10        return 104
11     }
12
13     func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {
14         // #warning Incomplete method implementation.
15         // Return the number of rows in the section.
16         return jsonArrStories.count
17     }
18
19
20     func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
21
22         var cell = tableView?.dequeueReusableCellWithIdentifier(identifier, forIndexPath: indexPath) as? NewsCell
23         var index = indexPath!.row
24         var data = self.jsonArrStories[index] as NSDictionary
25
26         var sTitle=data.objectForKey("title") as String
27         cell!.NLabContent.text=sTitle
28         var arrImgURL=data.objectForKey("images") as NSArray
29         var imagURL=arrImgURL[0] as String
30         println("imageURL:\(imagURL)")
31         cell!.NImg.setImage(imagURL,placeHolder: UIImage(named: "001p9BkFgy6KqjPYZg74b&690.jpeg"))
32
33         return cell
34     }

第24行获取之前服务器的数据

第25~31行分别设置标题,内容和图片。

cell开始点击事件

 1  func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!)
 2     {
 3         var index = indexPath!.row
 4         var data = self.jsonArrStories[index] as NSDictionary
 5         var aId : Int=data.objectForKey("id") as Int
 6         var board:UIStoryboard = UIStoryboard(name:"Main", bundle:nil);
 7         var detailConrol=board.instantiateViewControllerWithIdentifier("KDNewsDetailController") as KDNewsDetailController
 8         detailConrol.aId=aId
 9         println("detailConrol.id\(aId)")
10        // self.showViewController(detailConrol, sender: self)
11        self.presentModalViewController(detailConrol, animated: true)
12     }

第3~5行获取当前点击的新闻的id号

第6~7行获取名称为Main的故事板,然后通过instantiateViewControllerWithIdentifier方法初始化KDNewsDetailController类。

最后提一下,在它从网络获取数据的时候可以添加UIActivityIndicatorView控制用户的操作。

时间: 2024-08-02 06:57:45

swift学习第六天 项目实战-知乎日报客户端(二)界面开发UITableView的相关文章

Android-MVP+Retrofit+Rxjava实现一个知乎日报客户端

使用MVP+Retrofit+Rxjava实现一个知乎日报客户端,界面基于Material design,还没有全部完成orz,,放假太懒 效果图 开源项目 name introduction butterknife Annotate fields with @BindView and a view ID for Butter Knife to find and automatically cast the corresponding view in your layout. MaterialT

学习Android开源项目-根据知乎日报API分析重构一个简单的知乎日报Android客户端

从今天开始准备开始根据之前学习的知乎日报纯净版来实现一个自己的知乎日报客户端. 每次写完的代码都会更新在Github上,每次完成一个既定目标,完成之后当天完成目标的检查并根据错误进行最优化重构. 项目地址:https://github.com/wylhyz/ZhihuDialyPrue

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

知乎日报客户端应用ios源码

swift开发的知乎日报客户端详细源码,里面分UI和网络两个模块. 1.涉及到了大部分的UI控件的使用(甚至包括UIRefreshView,UITableConrol等等)2.Connection完成网络的交互操作3.json格式的数据解析4.sqlite数据库的各种常用操作5.包含swift开发过程中常用的工具类它能帮助开发者快速的进入到swift的开发中,而不需要慢慢的去学习swift的基本语法,能快速的提高swift的运用能力. <ignore_js_op>   <ignore_j

android版知乎日报客户端应用源码

如你所见,这是一个知乎日报客户端,我给它起名为:知乎小报,大家可以下载安装体验一下,见附件.IOS版本源码:http://code.662p.com/view/9004.html因为有大把的时间需要在地铁上度过,而我又喜欢知乎日报中的内容,于是就想自己也开发一个知乎日报的客户端,没有让人皱眉的启动页广告,没有应用推荐,没有后台的消息推送,只提供最初的阅读功能.经过了一段时间的开发,最初的设想已经全部完成: 最新新闻.过往的新闻的展示 下拉刷新数据 新闻正文的展示(WebView的各种使用) 正文

【转】Java开源项目源码阅读方法及二次开发方法

一直以来,都想要阅读某些Java开源项目的源代码,甚至想要修改某些代码,实现对开源项目进行二次开发的目的.但总是不知从何入手,直接将开源项目的源代码导入Eclipse,总是会报很多错误,而无法编译.可以直接通过Eclipse打开开源项目的源代码,至少能够达到可视化源码阅读.源码导航的目的,还是能在一定程度上解决源码阅读不爽的问题,因为直接打开并没有改变源文件项目的目录结果,对于修改过后的代码,可以通过命令行找到源文件项目目录,并使用mvn或者ant对项目进行编译,再查看修改后的项目是否正确. 由

swift学习第五天 项目实战-知乎日报客户端(一)网络交互NSURLConnection

CSDN下载地址:http://download.csdn.net/detail/guchengyunfeng/7989139 这篇文章主要介绍知易客户端开发的网络部分 网络接口 格式: 协议1: http://news-at.zhihu.com/api/3/news/latest (新闻列表) 协议2: http://news-at.zhihu.com/api/3/news/ (新闻详细) 代码实现的主要思路: 协议1 在KDNewsListApi类,并且实现下面的方法 1 func getN

学习笔记-Kuaihu(仿知乎日报)

本文目的:由于第一次学习较为完整的项目,故作记录以系统地整理APP开发知识 先看看整个项目结构: activity, fragment, 不用说了.可以看做MVC中的controller db, 存储json缓存用的,model就是一些bean类比如首页Item的对象,点开详情的文章对象 util嘛一些工具类.里面可以对已有的HTTP工具再次进行封装. view就是一些自定义的或者第三方view类. Kpplication就是自己写的application类,里面进行了第三方工具的初始化,其他没

打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件

第三章 建议学习时间8小时      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demoback.lalalaweb.com  前台:demo.lalalaweb.com 演示过程中可能会发现bug,希望即时留言反馈,谢谢 源码下载:https://github.com/sutianbinde/classweb               //不是全部的代码,每次更新博客才更新代码 学