仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2221|回复: 19
打印 上一主题 下一主题

[学习教程] IOS设计iOS列表UITableView提速指南仓酷云

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:35:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
关于UIView的子类有很多UIButtonUITableView这个都需要各个击破看看文档从名字上就很容易理解是做什么的UIViewController是管理View和Model的类(@张开说UIViewController是用来管理view的,管理model的类自己写,当然,model也可以用UIViewController来管理,不过恐怕成为不好的代码。UITableview

从08年到如今开辟过的iOS使用不可胜数了,可是口试良多人的时分,发明仍然良多同砚在最基础的列表控件上明白不敷深,上面就分离各方面的材料举行再一次解说。
我们都晓得纯代码是效力最高的,可是在开辟本钱上已愈来愈不如利用Storyboard性价比高,速率快,以是本文试图分离UIStoryboard来形貌一整套计划。
复杂设置

在Storyboard中拖进UITableViewController,而且修正涂涂画画。
在代码区newFile天生一个基于UITableviewController的自界说类,我这里临时取名为Home。由于主页就是一个庞大的列表的不在多数吧?呵呵。
然后在Identityinsepctor里修正对应的Classname,使得代码与Storyboard发生联系关系。

<br>
想要做下拉革新嘛?体系自带了一个给你,而且能够自界说换题目哦。良多人真的不晓得在哪儿选中,请看下图,先选中UITableviewController,然后在选项卡中enable这个refresh选项,就主动完成了。对应的代码仍是复制出来,就会主动触发。

<br>
然后你必要对UITableView做一些复杂的设置,起首要选中UITableView,良多人看不到选项,是由于默许封闭了……

<br>
下图是对UITableview的复杂设置。
Content是静态列表/静态列表,假如是静态的,那你基础不必写代码就可以所见即所得,比如“设置”页面就能够套用。可是诸如微博啦,伴侣圈,仍是厚道的用静态列表,用代码把持。
PrototypeCells指会呈现的cell有几品种型。这个前面再讲。
Style效果现场试一下就看出来了。Separator指的分开行款式。

<br>
然后你就必要代码中做一些复杂的设置了,我只列主要的,这里不是基本教程,基本的仍是厚道的看教科书
1
2
3
4
5
-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView//几组
-(NSInteger)tableView:(UITableView*)tableViewnumberOfRowsInSection:(NSInteger)section//每组分离几行
-(CGFloat)tableView:(UITableView*)tableViewheightForRowAtIndexPath:(NSIndexPath*)indexPath//每行多高
-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath//每行分离长啥样
-(void)tableView:(UITableView*)tableViewwillDisplayCell:(UITableViewCell*)cellforRowAtIndexPath:(NSIndexPath*)indexPath//行将显现某行

LoadMore加载更多

加载更多的UITableview扩大控件十分多,实验过各类第三方完善扩大后,我以为这点小幻术也不至于必要扩大UITableview类吧?
那就是在列表追加一个Section,放在最初面,这个Section只要一个Cell,这个自界说的cell有3种形态,这些都能够自在发扬。
每当willDisplayCell的时分,你就设置他正在loading形态,给用户形成正在加载的假象,同时触发收集哀求。
当有收集数据前往后,天然会insert很多多少内容,也轮不到这个加载更多的cell显现的中央了,天然就开释了。固然了,假如没有更多内容,也能够轻松的cellForRowAtIndexPath找到独一的cell,设置为无更多半据等形态。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
typedefenum{
JWLoadMoreNormal=0,//点击再加载
JWLoadMoreLoading,//加载中
JWLoadMoreDone,//无更多半据
}JWLoadMoreState;
@interfaceLoadMoreCell:UITableViewCell
@property(strong,nonatomic)UIView*baseWhiteView;
@property(strong,nonatomic)UIActivityIndicatorView*activity;
@property(strong,nonatomic)UILabel*tipsLabel;
@property(strong,nonatomic)UIButton*loadMoreButton;
@property(nonatomic,unsafe_unretained)id<LoadMoreCellDelegate>delegate;
-(void)setupUI;
-(void)loadMore:(id)sender;
-(void)setLoadMoreStatus:(JWLoadMoreState)status;

Autolayout

做完这些,基础设置就完成了,上面必要依据计划师的请求举行自界说开辟,比如自界说cell

<br>
如上图,密密层层的
autolayout的拖拽不会?你太老土了吧。xcode5的拖拽,可谓是非常复杂,只必要点快速菜单的pin,设置好高低摆布绝对干系就能够了。
创立custom的uitableviewcell基础差未几,拖出来,画画涂涂,创立代码,改类名对应干系,按着“Control”拖拽联系关系,等等。
我这里只讲一个特别的,就是图上“图片”“择要”属于并排地区,大概没有图片的帖子,“择要”就必要顶格排版。如许的情形该怎样设置呢?
这就得用NSLayoutConstraint的拽出来的联系关系了。把”择要“的绝对间隔,锁定在一个流动的地位上,比如”右边栏“,经由过程大批的代码盘算,便可静态的修正NSLayoutConstraint.constant的间隔。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
NSString*url=data.img;
[self.previewImageViewsetClipsToBounds:YES];
if(url!=nil&&![urlisEqualToString:@""]){//这里是判别有图没图
[self.previewImageViewsetImageWithURL:[NSURLURLWithString:url]placeholderImage:[UIImageimageNamed:@"pic_default"]];
self.previewImageHeight.constant=HomeCellImageHeight;
self.previewImageWidth.constant=HomeCellImageWidth;
self.abstractLeftMargin.constant=10;//如有图,择要与图的右边距变成10
self.summaryDistanceBetweenTitle.constant=80;
}
else
{
[self.previewImageViewsetImage:nil];
self.previewImageHeight.constant=0;//图片巨细全清空为0
self.previewImageWidth.constant=0;
self.abstractLeftMargin.constant=0;//若无图,择要与图的右边距变成10
}
[selfsetNeedsUpdateConstraints];//记得强迫革新,要否则体系懒懒的
[self.contentViewlayoutIfNeeded];
[self.contentViewsetNeedsLayout];

静态盘算高度

做到这里,生怕年夜部分人都碰到一个门坎了。那就是怎样静态盘算cell的高度。最复杂的,就是网易旧事类,流动高度。return44;
如果静态的,不过是创立一个cell,而且初始化机关好,然后输入cell的最初一行控件的地位,终极给出地位。
可是这就招致了函数运转的低效。你想,autolayout原本就够效力低了(由于程序猿费事儿了),再为每行盘算2次,这效力能高?
我亲测发明,静态排版效力长短常低的,不敷以信托。

iPhoneSDK安装,然后最基本的是你要熟悉C语言,再来你得学习开发iPhone所使用的Objective-C语言,接著是Cocoa。如果你是Mac平台开发的入门用户
兰色精灵 该用户已被删除
沙发
发表于 2015-1-21 10:43:21 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
分手快乐 该用户已被删除
板凳
发表于 2015-1-30 15:46:15 | 只看该作者
好处就是运行速度会变快,ios6针对系统的优化进一步加强了,很多网友测试ios6,第一感觉就是速度快,而且ios69会有一些新功能,新浪微博,facetime支持3G网等等。。弊端就是,现在的ios6只能算是正式版本的第一个版本,bug很多,不少人刷完ios6都出现了很多毛病,开不开机,缺少图标等等。。最好现在不要升级,等官网放出下一个版本的时候,再选择升级。。。
地板
发表于 2015-2-1 17:19:51 | 只看该作者
最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。
乐观 该用户已被删除
5#
发表于 2015-2-3 21:10:31 | 只看该作者
因为我们老师也是自学的,给我们讲课说的最多的就是百度,谷歌,查文档。
莫相离 该用户已被删除
6#
发表于 2015-2-9 05:05:31 | 只看该作者
边吃零食边看Stanford的视频教程
金色的骷髅 该用户已被删除
7#
发表于 2015-2-10 06:15:17 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
山那边是海 该用户已被删除
8#
发表于 2015-2-11 20:45:12 | 只看该作者
在百度搜索你想要了解的类名(苹果的cocoa和cocoatouch框架的类名很有特点很容易搜到,前缀都是NS or UI),看别人写的博客详解
深爱那片海 该用户已被删除
9#
发表于 2015-3-2 18:30:11 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
海妖 该用户已被删除
10#
发表于 2015-3-11 05:17:13 | 只看该作者
其次学习方法和学习心态很重要,在学习当中应该保持一颗良好的心态。应该借鉴别人好的学习方法,大家互相帮助,取长补短。
小魔女 该用户已被删除
11#
发表于 2015-3-14 03:05:16 | 只看该作者
好处就是运行速度会变快,ios6针对系统的优化进一步加强了,很多网友测试ios6,第一感觉就是速度快,而且ios69会有一些新功能,新浪微博,facetime支持3G网等等。。弊端就是,现在的ios6只能算是正式版本的第一个版本,bug很多,不少人刷完ios6都出现了很多毛病,开不开机,缺少图标等等。。最好现在不要升级,等官网放出下一个版本的时候,再选择升级。。。
只想知道 该用户已被删除
12#
发表于 2015-3-15 22:24:25 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
老尸 该用户已被删除
13#
发表于 2015-3-18 02:03:00 | 只看该作者
重要的是,放眼全球也的确找不到第二个如苹果iOS平台这样健壮、完整、先进而且为开发者带来真实收益的开发平台来。
因胸联盟 该用户已被删除
14#
发表于 2015-3-25 08:58:55 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
透明 该用户已被删除
15#
发表于 2015-3-27 00:11:09 | 只看该作者
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
灵魂腐蚀 该用户已被删除
16#
发表于 2015-4-1 13:46:52 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
小女巫 该用户已被删除
17#
发表于 2015-4-10 10:12:01 | 只看该作者
首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书
若相依 该用户已被删除
18#
发表于 2015-4-16 06:12:50 | 只看该作者
边吃零食边看Stanford的视频教程
柔情似水 该用户已被删除
19#
发表于 2015-6-6 10:23:37 | 只看该作者
其次学习方法和学习心态很重要,在学习当中应该保持一颗良好的心态。应该借鉴别人好的学习方法,大家互相帮助,取长补短。
不帅 该用户已被删除
20#
发表于 2015-6-29 21:23:29 | 只看该作者
每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 12:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表