Fork me on GitHub

UITableView 界面小实例

最近一是很忙,没时间写东西,今天抽时间来总结一下这几天学到的东西

首先看看,程序现在的样子:

基本完成这些,还有一个webview就不截图了

 

记录一下要点,首先自定义tableview,这个是按照iphone3开发基础教程上面的内容改的,基本思路是,定义一个

UITableViewCell的子类,然后在子类里面进行布局,最后在用到这个tableview的

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath这个函数中创建

CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier];

这里我设置了cell选中和未选中的背景图片,代码如下:

[cell setSelectedBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tabcellbkon.png"]]]; //设置选中后的背景,同前一个方法。

UIView *tabview = [[UIView alloc] initWithFrame:cell.frame];

UIImageView *tableImageView = [[UIImageView alloc] initWithFrame:cell.frame];

tableImageView.image = [UIImage imageNamed:@"tabcellbk.png"];

[tabview addSubview:tableImageView];

cell.backgroundView = tabview;

[tableImageView release];

[tabview release];

别的就没啥东西了。在看看别的。这里要说说第一张最上面的那个tab按钮,这个做的有点困惑,我用的系统的

navigationController,不是自定义,刚开始不知道,创建了按钮就是放不上去,结果网上搜,别人能出来,后来仔细一下才发现,估计是apple做了一下限制,只能如下这样创建:

UIButton *btn1 = [[UIButton alloc] initWithFrame:CGRectMake(16, 2.0f, kNavButtonWide, kNavButtonHeight)];

[btn1 setTitle:@"最新更新" forState:UIControlStateNormal];

[btn1 setTag:1];

btn1.titleLabel.font = [UIFont systemFontOfSize: 14.0];

[btn1 addTarget:self action:@selector(button_clicked_tag:) forControlEvents:UIControlEventTouchUpInside];

[titleview addSubview:btn1];

[btn1 release];
然后不能设置button选中和未选中的图片。即不能像下面这样:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setFrame:CGRectMake(offset + i*kNavButtonWide, 5.0f, kNavButtonWide, kNavButtonHeight)];
[btn setBackgroundImage:[UIImage imageNamed:@"navbarbuttonbk.png"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"navbarbuttonSelect.png"] forState:UIControlStateSelected];

说说tab的原理,首先创建了一个uiview,作为titleview,然后在上面放了一张背景图片,也就是蓝色的那一条,接着放3个button上去,写上字,然后在创建一个uiimageview代表selectview,然后在按钮的响应函数做动画处理和页面切换,就这么简单。
第2个页面9宫格页面是找来网上别人写的例子实现的。这个不详细说明了,也是用tableview做的,只不过我这里记录一下tabview去掉边线的方法
//设置标示图分割行的颜色为空,为了去掉分割线
self.tableview.separatorColor = [UIColor clearColor];
tableview设置背景,我在之前的文章有介绍,所以就不说了,设置界面弄了很长时间,主要是做设置推送时间那块。那块添加了一个选择器,然后打开选择器会自动定位到之前选定的时间,还做了一个时间判断,就是选择的开始时间,不能大于结束时间。这块代码比较多,整理之后在发。
先发这写吧,想到了在加

posted on 2012-02-17 00:31  pengyingh  阅读(889)  评论(0编辑  收藏  举报

导航