自定义表视图的滚动视图

时间:2017-10-06 16:33:49

标签: ios objective-c uitableview uiscrollview

我的表格滚动有问题。当我向下滚动桌子时,我在桌子上方的按钮保持在同一位置,仍然可见,我需要的是当我向下滚动桌子时按钮会消失。

这是我的代码:

  @implementation Mis_Servicios


- (void)viewDidLoad {
    [super viewDidLoad];

    [self SetTopBarStyle];
    self.title = @"Mis servicios";
    barButtonItem=[[UIBarButtonItem alloc]initWithTitle:@"Editar"
                                                                 style:UIBarButtonItemStylePlain
                                                                  target:self
                                                                  action:@selector(toggleEdit)];
    self.navigationItem.rightBarButtonItem = barButtonItem;

    #pragma mark - Table view data source

    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

        Cell_Detalles *cell = nil;
        static NSString *CellIdentifier = @"Cell_registro";
        cell =(Cell_Detalles *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        NSArray *nib= [[NSBundle mainBundle] loadNibNamed:@"Cell_Detalles_7" owner:self options:nil];
        cell = (Cell_Detalles *)[nib objectAtIndex:0];

        cell.bt_preguntas.layer.cornerRadius = 20;
        cell.bt_preguntas.backgroundColor = UIColorFromRGB(0x259026);
        [cell.bt_preguntas setTitle:@"Alta de servicios" forState:UIControlStateNormal];
        [cell.bt_preguntas setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        [cell.bt_preguntas addTarget:self action:@selector(goAltas) forControlEvents:UIControlEventTouchUpInside];

        return cell;
    }

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        NSLog(@"%f / %f",self.tableView.contentOffset.y, self.tableView.contentSize.height - self.tableView.frame.size.height);

        if (self.tableView.contentOffset.y == self.tableView.contentSize.height - self.tableView.frame.size.height){
            if (pagenumber < pages) {
                ++pagenumber;
                [self ObtenerDatos];
            }

        }

    }

这是表格上方的按钮:[cell.bt_preguntas setTitle:@“Alta de servicios”forState:UIControlStateNormal];

这是这个屏幕看起来如何的图像,我正在使用Storyboard和Xib作为表格。

enter image description here

1 个答案:

答案 0 :(得分:1)

这是节标题在普通样式表视图上的工作方式。有关示例,请参阅电话应用程序的“联系人”选项卡。

如果您只有一个按钮,并且您希望它在表格视图的顶部,并且您希望它在滚动表格视图时滚动,那么您应该设置按钮视图而不是实现viewForHeaderInSection作为表格视图的tableHeaderView

将以下代码添加到viewDidLoad方法中:

NSArray *nib= [[NSBundle mainBundle] loadNibNamed:@"Cell_Detalles_7" owner:self options:nil];
Cell_Detalles *cell = (Cell_Detalles *)[nib objectAtIndex:0];

cell.bt_preguntas.layer.cornerRadius = 20;
cell.bt_preguntas.backgroundColor = UIColorFromRGB(0x259026);
[cell.bt_preguntas setTitle:@"Alta de servicios" forState:UIControlStateNormal];
[cell.bt_preguntas setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[cell.bt_preguntas addTarget:self action:@selector(goAltas) forControlEvents:UIControlEventTouchUpInside];

self.tableView.tableHeaderView = cell;

并删除整个viewForHeaderInSection方法。