gpt4 book ai didi

objective-c - UITableView 自定义 UIView 重复

转载 作者:太空狗 更新时间:2023-10-30 03:29:10 26 4
gpt4 key购买 nike

因此,客户的规范希望 UITableView 始终显示其中一行,这样用户就可以在 UITableView 的任何位置与这个关键按钮进行交互。一旦他滚动并看到带有按钮的实际行, float 页脚必须消失并允许用户与“真实”单元格交互,而不是 float 版本。

我想出了以下代码:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if([self isPostularmeRowVisible])
{
[self hidePostularmeFooterView];
}
else
{
[self showPostularmeFooterView];
}
}

-(BOOL)isPostularmeRowVisible
{
NSArray *indexes = [self.tableView indexPathsForVisibleRows];
for (NSIndexPath *index in indexes)
{
if (index.row == 0 && index.section>=DetalleEmpleoPostularmeCell)
{
return YES;
}
}
return NO;
}

-(void) showPostularmeFooterView
{
NSAssert(_state==ESTADO_POSTULACION_NO_POSTULADO, @"NJDetalleEmpleoViewController: This shouldn't happen");

if(!self.footerView)
{
NJDetalleEmpleoPostularmeTableViewCell *footerView = [self.tableView dequeueReusableCellWithIdentifier:kDetalleEmpleoPostularmeCell];
[footerView configureCell:self.detaleAviso];
float h = self.view.frame.size.height-footerView.cellHeight;
footerView.frame = CGRectMake(0,h,self.view.frame.size.width,footerView.cellHeight);
footerView.delegate = self;
self.footerView = footerView;
[self.view addSubview:self.footerView];
[self.view bringSubviewToFront:self.footerView];
}
}

-(void) hidePostularmeFooterView
{
if(self.footerView)
{
[self.footerView removeFromSuperview];
}

self.footerView = nil;
}

但是这段代码有一个我似乎无法弄清楚的错误:一旦用户在 UITextBox 上点击并输入一些文本,它就会开始表现不正常,即:屏幕上出现 2 个或更多单元格,而实际上应该是没有任何!基本上,当我调用“hidePostularmeFooterView”方法时,它似乎并没有消失(只有在我输入一些文本之后,如果我不与之交互,它才能正常工作)。

enter image description here

似乎在我输入一些文本后有 2 个版本的页脚,这是证据:

enter image description here

最佳答案

将它作为单元格和页脚删除并替换为 UITableView 下方的自己的 UIView 可能更有意义,并让 UITableView 的框架高度只下降到这个 View 的 y 原点,而不是占据整个屏幕。这样您就可以随时看到 View 并与之交互。有什么理由需要它成为 UITableViewCell 吗?

关于objective-c - UITableView 自定义 UIView 重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45227807/

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