ios – 如何使UIButton仅出现在最后一个单元格中?

ios – 如何使UIButton仅出现在最后一个单元格中?,第1张

概述我对Objective C编程很新,并且有一个带有自定义单元格的UITableView设置.我想这样做,以便用户可以触摸将添加另一个单元格的按钮,此按钮将仅显示在最后一个单元格中.目前,它没有出现.这是我正在使用的代码.我在自定义单元格中创建了按钮,并使用“setHidden:YES”将其隐藏在单元格内.我正在尝试“setHidden:NO”使按钮出现在TableView代码中,但它无法正常工作. 我对Objective C编程很新,并且有一个带有自定义单元格的UItableVIEw设置.我想这样做,以便用户可以触摸将添加另一个单元格的按钮,此按钮将仅显示在最后一个单元格中.目前,它没有出现.这是我正在使用的代码.我在自定义单元格中创建了按钮,并使用“setHIDden:YES”将其隐藏在单元格内.我正在尝试“setHIDden:NO”使按钮出现在tableVIEw代码中,但它无法正常工作.我想也许它与重新加载单元格有关,但我不确定我是否正朝着正确的方向前进.谢谢,我将不胜感激.

- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath{workouttableVIEwCell *cell = (workouttableVIEwCell *)[tableVIEw dequeueReusableCellWithIDentifIEr:CellIDentifIEr];// Configure the cell...if (cell == nil) {    cell = [[UItableVIEwCell alloc] initWithStyle:UItableVIEwCellStyleDefault reuseIDentifIEr:CellIDentifIEr];}[cell.addbutton setTitle:(Nsstring *)indexPath forState:UIControlStateApplication];[cell.textLabel setText:[Nsstring stringWithFormat:@"Row %i in Section %i",[indexPath row],[indexPath section]]];NSInteger sectionsAmount = [tableVIEw numberOfSections];NSInteger rowsAmount = [tableVIEw numberOfRowsInSection:[indexPath section]];if ([indexPath section] == sectionsAmount - 1 && [indexPath row] == rowsAmount - 1) {    NSLog(@"Reached last cell");    [cell.addbutton setHIDden:NO];    if (lc == NO)    {[[self tableVIEw] reloadData];        lc = YES;    }} return cell; }
解决方法 以下UItableVIEwDataSource方法将帮助您返回部分中可用的确切行数.在这里,你需要返回额外的,因为你想拥有最后一个按钮.

- (NSInteger)tableVIEw:(UItableVIEw *)tableVIEw numberOfRowsInSection:(NSInteger)section {    return yourRowCount + 1;}

现在在下面的方法中,您将使用indexpath.row检查行号

- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath {    static Nsstring *lastCellIDentifIEr = @"LastCellIDentifIEr";    static Nsstring *workoutCellIDentifIEr = @"WorkoutCellIDentifIEr";    if(indexPath.row==(yourRowCount+1)){ //This is last cell so create normal cell        UItableVIEwCell *lastcell = [tableVIEw dequeueReusableCellWithIDentifIEr:lastCellIDentifIEr];        if(!lastcell){            lastcell = [[UItableVIEwCell alloc] initWithStyle:UItableVIEwCellStyleDefault reuseIDentifIEr:lastCellIDentifIEr];            CGRect frame = CGRectMake(0,320,40);            UIbutton *abutton = [UIbutton buttonWithType:UIbuttonTypeCustom];            [abutton addTarget:self action:@selector(btnAddRowTapped:) forControlEvents:UIControlEventtouchUpInsIDe];            abutton.frame = frame;            [lastcell addSubvIEw:abutton];        }        return lastcell;    } else { //This is normal cells so create your worktouttablecell        workouttableVIEwCell *cell = (workouttableVIEwCell *)[tableVIEw dequeueReusableCellWithIDentifIEr:workoutCellIDentifIEr];        //Configure your cell    }}

或者你可以像编程一样创建UIVIEw并将其设置为FooterVIEw,如@student在评论代码中所建议的那样,

CGRect frame = CGRectMake(0,40);UIVIEw *footerVIEw = [[UIVIEw alloc] initWithFrame:frame];UIbutton *abutton = [UIbutton buttonWithType:UIbuttonTypeCustom];[abutton addTarget:self action:@selector(btnAddRowTapped:) forControlEvents:UIControlEventtouchUpInsIDe];abutton.frame = frame;[footerVIEw addSubVIEw:abutton];[yourtableNmae settableFooterVIEw:footerVIEw];

声明方法如下

-(IBAction)btnAddRowTapped:(ID)sender{    NSLog(@"Your button tapped");}
总结

以上是内存溢出为你收集整理的ios – 如何使UIButton仅出现在最后一个单元格中?全部内容,希望文章能够帮你解决ios – 如何使UIButton仅出现在最后一个单元格中?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1010540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存