自定义 UITableView - iphone
Posted
技术标签:
【中文标题】自定义 UITableView - iphone【英文标题】:Custom UITableView - iphone 【发布时间】:2014-07-28 13:16:10 【问题描述】:我使用了UITableView
,并构建了customCell
,UITableView
连接到NavigationController
。
我希望单元格 1-3 使用 navigationBar
(例如,单击单元格传递到下一个视图)
并且单元格 4-5 仍保留为可点击单元格(例如,我单击此单元格,单元格背景会发生变化)。
在故事板中,标识符等于Cell
。
现在任何动作都会让我进入另一个视图,有人可以帮忙吗?
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString * CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
return cell;
【问题讨论】:
你的问题不清楚。请详细说明您的问题、预期结果和要求的结果。 【参考方案1】:在声明您的cellForRowAtIndexPath
时,请务必将您的自定义单元格添加为:
YourCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
如果您不需要自定义单元格,则将其保留为 UITableViewCell
。
使用didSelectCellAtIndexPath
方法进行操作:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
NSString *segueIdentifier = [[NSString alloc]init];
switch (indexPath.row)
case 0:
segueIdentifier = @"segue1";
break;
case 1:
segueIdentifier = @"segue2";
break;
case 2:
segueIdentifier = @"segue3";
break;
if (indexPath.row != 3 && indexPath.row !=4)
[self performSegueWithIdentifier:segueIdentifier sender:self];
[self dismissViewControllerAnimated:YES completion:nil];
【讨论】:
【参考方案2】:您可以为此使用(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
方法。
在您的 tableviewcontroller 中实现此方法,并在此方法中执行以下操作。
如果您在 viewcontroller 中添加了 tableview,请执行以下操作 -
1) 在.h文件中添加代理@interface TestTableViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
2) 在(void)viewDidLoad()
方法中的.m 文件中添加
self.tableView.delegate=self;
self.tableView.dataSource=self;
如果用户点击 1-3 个单元格调用[self performSegueWithIdentifier:SEGUE_SHOWDETAILS sender:self];
in didSelectRowAtIndexPath 方法重定向到新页面
对于 4-5 个单元格,在 didSelectRowAtIndexPath 方法中更改单元格背景颜色。
【讨论】:
以上是关于自定义 UITableView - iphone的主要内容,如果未能解决你的问题,请参考以下文章
从自定义单元格返回 NSIndexPath ? (UITableView)
UITableView - 自定义 UITableViewCell 中的自定义 selectedBackgroundView 选择时隐藏单元格分隔符