【问题标题】:Display and hide DatePicker on UITableViewCell tap在 UITableViewCell 点击时显示和隐藏 DatePicker
【发布时间】:2015-03-02 17:00:04
【问题描述】:
我有一个表格视图控制器,我需要在点击单元格时显示日期和时间选择器,并在再次点击单元格时隐藏它。当您选择开始和结束日期和时间以在日历中创建新事件时,iPhone 的效果基本相同。
我猜测显示和隐藏是通过以下方法进行的,但我不确定里面是什么:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {}
一些示例代码或链接会很棒。谢谢!!
【问题讨论】:
标签:
ios
objective-c
uitableview
datepicker
uidatepicker
【解决方案1】:
使用您想要显示的任何内容和选择器创建您的单元格:
-----------------------------------
cell visible part
-----------------------------------
cell invisible part (with picker)
-----------------------------------
定义一个属性,让您知道是否必须显示整个单元格:
@property (nonatomic) BOOL shouldShowPicker;
初始化此属性(例如在 viewDidLoad 上);
self.shouldShowPicker = NO;
几种触摸方法:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.row == 4) { //where your picker row is
self.shouldShowPicker = YES;
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row == 4 && self.shouldShowPicker) { //where your picker row is
return CELL_VISIBLE_PLUS_INVISIBLE_PART;
} else if(indexPath.row == 4 && !self.shouldShowPicker) {
return return CELL_VISIBLE_PART;
} else {
return OTHER_CELLS_HEIGHT;
}
}