最近一是很忙,没时间写东西,今天抽时间来总结一下这几天学到的东西
首先看看,程序现在的样子:
基本完成这些,还有一个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设置背景,我在之前的文章有介绍,所以就不说了,设置界面弄了很长时间,主要是做设置推送时间那块。那块添加了一个选择器,然后打开选择器会自动定位到之前选定的时间,还做了一个时间判断,就是选择的开始时间,不能大于结束时间。这块代码比较多,整理之后在发。先发这写吧,想到了在加