ios-表视图-demo2


//
// RootViewController.m
// uitableview
//
// Created by liyang on 14-4-27.
// Copyright (c) 2014年 liyang. All rights reserved.
//

#import "RootViewController.h"
#define KDeviceHeight [UIScreen mainScreen].bounds.size.height

@interface RootViewController ()

@end

@implementation RootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title=@"UITableViewStyle";
}
return self;
}
-(void)loadView{
UIView *view=[[UIView alloc]initWithFrame:CGRectMake(200, 80, 3000, KDeviceHeight-20-44)];//这里随便设置最终都会再排版的,排版来适合屏幕,当有视图控制器的时候会根据视图控制器的bar来排版,(最终的理解,这些bar是没有盖住这个view的,只是合适的调整view的大小来适应屏幕,那么下面那个所谓的调整坐标系就是错误的)
view.backgroundColor=[UIColor redColor];
self.view=view;
_fontarry[email protected][@"UITableViewStylePlain",@"UITableViewStyleGrouped"];
_uitableview=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, KDeviceHeight-20-44) style:UITableViewStylePlain];
//_uitableview的frame设置的0,0,当这个viewcontroller的视图控制器是放再导航控制器里面,0,0自然是抛除了导航开始的,当特殊情况我们将导航控制器的navigationbar给隐藏了,那么0.0就是从视图控制器的view开始的,也就是说视图控制器是否在导航控制器中将直接影响其子视图的坐标系,原点坐标是不一样的

_uitableview.dataSource=self;//设置数据源代理
_uitableview.delegate=self;
_uitableview.rowHeight=45;//行高,默认的44
UIImageView*imageview= [[UIImageView alloc]initWithFrame:self.view.bounds];
imageview.image=[UIImage imageNamed:@"IMG_0410"];//设置背景图片
_uitableview.backgroundView=imageview;

[self.view addSubview:_uitableview];
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [_fontarry count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *cellindentifier=@"cellidentifier";
UITableViewCell* cell=[tableView dequeueReusableCellWithIdentifier:cellindentifier];
if (cell==nil) {
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellindentifier];
}
NSString *fontname=_fontarry[indexPath.row];
cell.textLabel.text=fontname;
return cell;

}
#pragma tableview delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPathP{
DetailViewController *detail= [[DetailViewController alloc]init];
detail.isPlan=indexPathP.row?NO:YES;
[self.navigationController pushViewController:detail animated:YES];
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"didDeselectRowAtIndexPath%@",indexPath);

}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}

@end


//
// DetailViewController.m
// uitableview
//
// Created by liyang on 14-4-27.
// Copyright (c) 2014年 liyang. All rights reserved.
//

#import "DetailViewController.h"
#define KDeviceHeight [UIScreen mainScreen].bounds.size.height

@interface DetailViewController ()

@end

@implementation DetailViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title=@"detailviewcontroller";
}
return self;
}
-(void)loadView{
UIView *view=[[UIView alloc]initWithFrame:[[UIScreen mainScreen] applicationFrame]];
self.view=view;
NSArray *array=[UIFont familyNames];
_fontarry=[[NSMutableArray alloc]initWithCapacity:13];
NSMutableArray *temparray=nil;

for (int index=0; index<[array count]; index++) {
NSString *font=array[index];
if (index%5==0) {
temparray=[[NSMutableArray alloc]initWithCapacity:5];
[_fontarry addObject:temparray];//这里咋一看,可能以为是错的,因为初始化了一个空的来放进去,其实呢,外面又用了一个临时指针在往里面放东西
}
[temparray addObject:font];
}
UITableViewStyle style=self.isPlan?UITableViewStylePlain:UITableViewStyleGrouped;
_uitableview=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, KDeviceHeight-20-44) style:style];

_uitableview.dataSource=self;//设置数据源代理
_uitableview.delegate=self;
_uitableview.rowHeight=45;//行高,默认的44
UIImageView*imageview= [[UIImageView alloc]initWithFrame:self.view.bounds];
imageview.image=[UIImage imageNamed:@"IMG_0410"];//设置背景图片
_uitableview.backgroundView=imageview;

[self.view addSubview:_uitableview];}

- (void)viewDidLoad
{
[super viewDidLoad];

}

#pragma mark-uitableviewdatasource
#pragma mark-uitableviewdelegate
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return [_fontarry count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [_fontarry[section] count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *cellindentifier=@"cellidentifier";
UITableViewCell* cell=[tableView dequeueReusableCellWithIdentifier:cellindentifier];
if (cell==nil) {
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellindentifier];
}
NSString *fontname=_fontarry[indexPath.section][indexPath.row];
cell.textLabel.text=fontname;
cell.textLabel.font=[UIFont fontWithName:fontname size:14];
return cell;

}
#pragma tableview delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPathP{
DetailViewController *detail= [[DetailViewController alloc]init];
detail.isPlan=indexPathP.row?NO:YES;
[self.navigationController pushViewController:detail animated:YES];
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"didDeselectRowAtIndexPath%@",indexPath);

}
//设置sectiontitle
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return [NSString stringWithFormat:@"第%d个section开始",section];
}
//- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
//return [NSString stringWithFormat:@"第%d个section结束",section];
//}
//设置行高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 44;
}
//设置区域头视图高
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 55;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return 50;
}
//自定义区域尾视图
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;{

UIView *view= [[UIView alloc]initWithFrame:CGRectZero];
view.backgroundColor=[UIColor purpleColor];
return view;

}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];

}

@end

ios-表视图-demo2,码迷,mamicode.com

时间: 2024-11-13 20:35:48

ios-表视图-demo2的相关文章

iOS表视图常见问题

Q:表视图只需要部分单元格,怎样删除下方多余的空白单元格? A:代码如下 - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { return [UIView new]; }

IOS 集合视图指南1:介绍

About iOS Collection Views(关于IOS集合视图) A collection view is a way to present an ordered set of data items using a flexible and changeable layout. The most common use for collection views is to present items in a grid-like arrangement, but collection v

第三章:IOS Table表视图委托协议和数据协议

表视图有两个重要的协议 UITableViewDataSource :数据源协议   方法 返回类型 说明 必须实现 tableView:cellForRowAtIndexPath: UITableViewCell* 为表视图单元格提供数据,该方法是必 须实现的方法 是 tableView:numberOfRowsInSection: NSInteger 返回某个节中的行数 是 tableView:titleForHeaderInSection: NSString 返回节头的标题 否 table

iOS开发之多表视图滑动切换示例(仿&quot;头条&quot;客户端)

好长时间没为大家带来iOS开发干货的东西了,今天给大家分享一个头条新闻客户端各个类别进行切换的一个示例.在Demo中对所需的组件进行的简单封装,在封装的组件中使用的是纯代码的形式,如果想要在项目中进行使用,稍微进行修改即可. 废话少说,先介绍一下功能点,下图是整个Demo的功能点,最上面左边的TabBarButtonItem是用来减少条目的,比如下图有三个按钮,点击减号会减少一个条目.右边的为增加一个条目.点击相应的按钮是切换到对应的表视图上,下方红色的是滑动的指示器,同时支持手势滑动.运行具体

IOS学习之——表视图 给tableViewController添加悬浮窗口

前言 在IOS中,UITableViewController不如UIViewController用的方便,遇到了一个需求:在TableView中添加一个悬浮按钮,不随TableView滑动而滑动.这个需求在UIViewController里面很好实现,给self.view 添加子视图,再把子视图放到最上方即可.可是在表视图控制器中,就很难办,因为控制器中没有作为tableView的父视图的view存在,而把button作为tableView的子视图出现呢,则会随着table的滑动而滑动(⊙﹏⊙b

IOS开发中UITableView(表视图)的性能优化及自定义Cell

IOS开发中UITableView(表视图)的滚动优化及自定义Cell IOS 开发中UITableView是非常常用的一个控件,我们平时在手机上看到的联系人列表,微信好友列表等都是通过UITableView实现的.UITableView这个控件中的列表的每一行是一个cell,当UITableView中cell数量特别大的时候,由于每次都需要alloc分配内存并初始化,会导致app运行不流畅,所以可以使用苹果提供的几个方法进行优化,我把这个过程记录下来供自己以后查阅. 当然,既然说到优化,那我们

第二章:IOS Table表视图单元格简单介绍

单元格在Table里面也是很总要的一个部分,我们现在就来看看 1. 视图组成结构 图标.标题和副标题可以有选择地设置,扩展 视图可以内置或者自定义,其中内置的扩展视图是在枚举类型UITableViewCellAccessoryType中定义的 UITableViewCellAccessoryType 的常量枚举类型有以下几种: UITableViewCellAccessoryNone.没有扩展图标 UITableViewCellAccessoryDisclosureIndicator.扩展指示器

iOS开发初探篇——表视图中的MVC运用

概述 本初探篇为本人学习iOS开发中的一个总结系列,为工作和业余学习中遇到的初级问题的一个初步探究.本文初探的内容是MVC设计模式在表视图中的应用.首先感谢博主KC写的精彩博文. 本文主要内容如下: 1.MVC基本介绍 2.MVC在表视图中的应用 3.总结 MVC基本介绍 MVC模式这个名词太熟悉,不过本人由于缺乏工程实践经验,对其理解目前还停留在理论的表面层次上.在iOS开发中MVC模式第一次在表视图设计中应用到,想借此机会对其有个初步的认识.MVC在表视图中的对号入座,目前的理解为如下图所示

【IOS】关于处于表视图行单元 contentView 中的 UIButton 短按不产生高亮效果的

在做demo时, 发现 UITableViewCell 中的 UIButton 短按一次看不到默认的变灰效果, 停留稍长才能变灰, 比如twitter官方客户端用户头像, 微博的转评赞三按钮. 微博各类客户端的头像和其他按钮也是这样, 头像很多直接是imageView加手势. 这方面细节处理的最好的是 Instagram 不管短按长按都会灰, 这样才有打击感. 经一番搜索之后得知 UITableView 做为 UIScrollView 的子类,拥有 delaysContentTouches 的布

IOS开发之表视图爱上CoreData

在接触到CoreData时,感觉就是苹果封装的一个ORM.CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功能和JavaEE中的Hibernate的功能类似,最基本是两者都有通过对实体的操作来实现对数据库的CURD操作.CoreData中的上下文(managedObjectContext)就相当于Hibernate中的session对象, CoreData中的save操作就和Hibernate中的comm