gpt4 book ai didi

ios - 点击或长按单元格下方

转载 作者:行者123 更新时间:2023-12-01 18:56:02 26 4
gpt4 key购买 nike

当用户点击或按下 UITableView 中最后一个单元格下方时,我想添加一个新单元格,但仅当 View 高度大于所有单元格的高度时。

我不想要分隔符,我使用:

myTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

而是作为一个空白 View 。

我尝试更改并添加 UITapGestureRecognizermyTableView.tableFooterView .当有足够的单元格填满屏幕时,他也离开了。我想要的是,它可以在部分空的屏幕上工作。

我不认为 UITableViewDelegate在这种情况下发送消息。

编辑

在@LeoNatan 回答之后,我尝试使用它(在 viewDidLoad 中):
UIView *backView = [[UIView alloc] initWithFrame:self.myTableView.frame];
singleTapBack = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapBack:)];
//singleTapBack.delegate = self; // the problem...
singleTapBack.numberOfTapsRequired = 1;
singleTapBack.numberOfTouchesRequired = 1;
[backView addGestureRecognizer:singleTapBack];
self.myTableView.backgroundView = backView;

当我触摸背景时:
-[UIView indexPathForRowAtPoint:]: unrecognized selector sent to instance 0x7fff0bc16a20
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView indexPathForRowAtPoint:]: unrecognized selector sent to instance 0x7fff0bc16a20'
0x7fff0bc16a20UIView *backView@selector(handleTapBack:)不叫

最佳答案

您可以在表格底部添加一个新的空“新建”单元格。做这样的事情。

@property (strong, nonatomic) UITableViewCell *createNewCell;

- (UITableViewCell *)createNewCell {
if (!_createNewCell) {
// can be your own nib too
_createNewCell = [self.tableView dequeueReusableCellWithIdentifier:@"CreateNewCell"
_createNewCell.textLabel.text = @"+ New entry";
}
return _createNewCell;
}

- (BOOL)isCreateNewCell:(NSIndexPath *)indexPath {
return (indexPath.row == modelArray.count + 1);
}

- (UITableViewCell *)tableView:(UITableView *)view cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([self isCreateNewCell:indexPath]) {
return self.createNewCell
}

// rest of cell configuration
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return modelArray.count + 1;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ([self isCreateNewCell:indexPath]) {
// do insert stuff or go into edit mode
}
// do other selection stuff
}

这将使您的表格 View 始终在表格底部有一个额外的单元格。您可以编写自己的行插入和编辑。

如果这不是您想要的,您可以制作一个透明的背景 View 。
myTableView.backgroundView = [[UIView alloc] initWithFrame:self.tableView.frame;
myTableView.backgroundView.alpha = 0;

并添加 UITapGestureRecognizer :
UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@sel(newCellTapped)];
[myTableView.backgroundView addGestureRecognizer:tgr];

关于ios - 点击或长按单元格下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com