扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
AppDelegate.swift:
平乡ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
Customcell.swift:(自定义的cell)
//屏幕的宽
let kScreenWidth = UIScreen.main.bounds.size.width
//屏幕的高
let kScreenHeigh = UIScreen.main.bounds.size.height
RootTableViewController.swift:
UITableViewCell类能够显示出各种各样的风格,但有时候我们需要适应不同的显示模式下的显示。今天的文章中,我们将使用table view去显示一系列自定义的cell。
启动Xcode,选择"Create a new Xcode project",然后选择空应用程序模板,点击Next。命名为 CustomCells,然后照下图那样设置。
点击Next,选择项目的存放路径,最后点击Create。
这里需要添加两个文件,UITableViewController以及custom cell对应的xib文件。
Choose File | New File ,然后添加一个名为 TableViewController 的UITableViewController。
如图:
对于这个controller,我们并不需要xib文件,所以直接点击Next创建。
重新创建文件,这次我们是创建一个空的 xib 文件,如下图:
点击Next,确保Device Family被设置为iPad,再点击Next,在默认路径下保存为 CellNib 文件。
接着打开 CellNib.xib 文件。在上面拖放几个 label:
这里第一个Label的字体大小是27,字体是System Italic。而其他的Label全部都是默认设置。
下一步就是为文本依然是"Label"的Label设置tag。
将第一个大字体的Label设置tag=1,然后设置Address1,Address2,Phone,Cell右边的Label的tag分别为2,3,4,5。
接着需要修改xib的File's Owner的所属类。这里选择为 TableViewController。
打开 TableViewController.h 然后添加这些属性:
#import uikit uikit.h=""span class="referer"@interface/span TableViewController : UITableViewController
@property (nonatomic, strong) NSArray *cellContent;
@property (nonatomic, strong) IBOutlet UITableViewCell *customCell;span class="referer"@end/span /uikit
这个演示中,我们定义一个数组来记录所有cell的内容,还需要如下图那样,设置设置好 customCell的outlet。
现在打开TableViewController.m做出如下更改:
#import "TableViewController.h"span class="referer"@interface/span TableViewController ()span class="referer"@end/span
@implementation TableViewController
@synthesize cellContent, customCell;
- (NSArray *)cellContent
{
cellContent = [[NSArray alloc] initWithObjects:
[NSArray arrayWithObjects:@"Alex Ander",
@"213 4th St.", @"Apt. 17", @"555-555-5555", @"111-111-1111", nil],
[NSArray arrayWithObjects:@"Jane Doe",
@"4 Any Ave.", @"Suite 2", @"123-456-7890", @"098-765-4321", nil],
[NSArray arrayWithObjects:@"Bill Smith",
@"63 Smith Dr.", @"", @"678-765-1236", @"987-234-4987", nil],
[NSArray arrayWithObjects:@"Mike Taylor",
@"3145 Happy Ct.", @"", @"654-321-9871", @"654-385-1594", nil
这里我默认你是要自定义UITableViewCell.首先 你创建一个类继承UITableViewCell。然后在tableview的delegate中的
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 实现中 return你自定义的cell就ok了
1、先把Cell的头文件import进来
2、[tableview_main registerNib:[UINib nibWithNibName:@"UserCallDealTableViewCell" bundle:nil] forCellReuseIdentifier:@"UserCallDealTableViewCellMark"];
使用这个方法注册自定义Cell tableview_main就是当前tableview实力化对象,然后UserCallDealTableViewCell这个字符串就是xib的名称,UserCallDealTableViewCellMark是重用机制的标记,配合等一下的代理方法使用
3、最后在代理方法控制自定义cell
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *identification = @"UserCallDealTableViewCellMark";
UserCallDealTableViewCell *cell = [tableview_main dequeueReusableCellWithIdentifier:identification];
if (cell != nil) {
NSDictionary *dict_tmp = arry_dataSource[indexPath.row];
cell-label_doctor_name.text = dict_tmp[@"doctorName"];
cell-label_hosptial.text = dict_tmp[@"hospitalName"];
if ([dict_tmp[@"sstatus"] isEqualToString:@"S"]) {
cell-label_status.text = @"预约成功";
}
else{
cell-label_status.text = @"预约失败";
}
NSString *string_date = @{@"0":@"上午",@"1":@"下午"}[dict_tmp[@"timeq"]];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date_tmp = [formatter dateFromString:dict_tmp[@"date"]];
[formatter setDateFormat:[NSString stringWithFormat:@"MM月dd日 EEEE %@ mm:HH",string_date]];
cell-label_info.text = [formatter stringFromDate:date_tmp];
return cell;
}
return [UITableViewCell new];//这个地方我建议不要返回nil因为可能会导致崩溃
}
开发中经常在cell上添加scrollView展示多张图片,但是这是scrollView的点击事件会与cell的点击事件冲突,这里介绍一个简单的方法,使scrollView既可以滑动,cell的点击事件也好用。
在自定义cell中,添加下面两句话:
self.scrollView.userInteractionEnabled = NO;//关闭scrollView的用户交互
[self.contentView addGestureRecognizer:self.scrollView.panGestureRecognizer];//让cell捕捉scrollView的点击事件并相应
除此之外,也可以给UIImageView添加手势,但是比较麻烦,不如这两句话方便。
但是此时需加上这一句;
self.myImageView.userInteractionEnabled = YES;//用户交互,默认关闭,BOOL类型
UITapGestureRecognizer *tap =[[ UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
tap.numberOfTouchesRequired = 1;
[self.myImageView addGestureRecognizer:tap];
-(void)tapAction:(UITapGestureRecognizer *)sender{
//实现方法
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流