• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 当 TableView 滚动比值更改时

[复制链接]
菜鸟教程小白 发表于 2022-12-13 00:32:26 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我创建了一个表格 View 来显示数组中的数据。但是现在当我滚动表格 View 时,我的数据会发生 Not Acceptable 变化。

那么如何防止表格 View 在每次滚动时刷新并在创建表格 View 时第一次设置所有数据。

这是我的代码:

- (NSInteger)numberOfSectionsInTableViewUITableView *)tableView
{
ExampleAppDataObject* theDataObject = [self theAppDataObject];    // Return the number of sections.
    return theDataObject.vendorTableAry.count;  //this is return value of array and it will be more than 2 which help to create section
}

- (NSInteger)tableViewUITableView *)tableView numberOfRowsInSectionNSInteger)section
{
    // Return the number of rows in the section.
    return 4;   // i want only 4 row in each section
}

- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath
{
    ExampleAppDataObject* theDataObject = [self theAppDataObject]; 

    static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";

    UITableViewCell * cell = [tableView
                              dequeueReusableCellWithIdentifier: SimpleTableIdentifier];

    if(cell == nil) {

        cell = [[UITableViewCell alloc]
                 initWithStyle:UITableViewCellStyleDefault
                 reuseIdentifier:SimpleTableIdentifier];

        /*cell = [[[UITableViewCell alloc]
         initWithStyle:UITableViewCellStyleSubtitle
         reuseIdentifier:SimpleTableIdentifier] autorelease];
         */

        if (indexPath.row==0) {
            UILabel * vendorLbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 2, 60, 39)];
            [[vendorLbl layer] setCornerRadius:5.0f];
            //[vendorLbl setFont:[UIFont fontWithName"Helvetica-Bold" size:13.0]];
            vendorLbl.backgroundColor = [UIColor clearColor];


            [vendorLbl setText"vender"];

            [cell.contentView addSubview:vendorLbl];


            UILabel * columnLbl = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 10, 39)];

            columnLbl.backgroundColor = [UIColor clearColor];


            [columnLbl setText":"];

            [cell.contentView addSubview:columnLbl];


            UILabel * vendorValueLbl = [[UILabel alloc] initWithFrame:CGRectMake(98, 2, 195, 39)];

            [[vendorValueLbl layer] setCornerRadius:5.0f];
            //[vendorLbl setFont:[UIFont fontWithName"Helvetica-Bold" size:13.0]];
            vendorValueLbl.backgroundColor = [UIColor clearColor];


            [vendorValueLbl setText:[theDataObject.vendorTableAry objectAtIndex:indexPath.section]];

            [cell.contentView addSubview:vendorValueLbl];
        }
        if (indexPath.row==1) {
            UILabel * vendorLbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 2, 60, 39)];
            [[vendorLbl layer] setCornerRadius:5.0f];
            //[vendorLbl setFont:[UIFont fontWithName"Helvetica-Bold" size:13.0]];
            vendorLbl.backgroundColor = [UIColor clearColor];


            [vendorLbl setText"Gallons"];

            [cell.contentView addSubview:vendorLbl];


            UILabel * columnLbl = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 10, 39)];

            columnLbl.backgroundColor = [UIColor clearColor];


            [columnLbl setText":"];

            [cell.contentView addSubview:columnLbl];


            UILabel * vendorValueLbl = [[UILabel alloc] initWithFrame:CGRectMake(98, 2, 195, 39)];

            [[vendorValueLbl layer] setCornerRadius:5.0f];
            //[vendorLbl setFont:[UIFont fontWithName"Helvetica-Bold" size:13.0]];
            vendorValueLbl.backgroundColor = [UIColor clearColor];


            [vendorValueLbl setText:[theDataObject.gallonsTableAry objectAtIndex:indexPath.section]];

            [cell.contentView addSubview:vendorValueLbl];
        }
        if (indexPath.row==2) {
            UILabel * vendorLbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 2, 60, 39)];
            [[vendorLbl layer] setCornerRadius:5.0f];
            //[vendorLbl setFont:[UIFont fontWithName"Helvetica-Bold" size:13.0]];
            vendorLbl.backgroundColor = [UIColor clearColor];


            [vendorLbl setText"Route"];

            [cell.contentView addSubview:vendorLbl];


            UILabel * columnLbl = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 10, 39)];

            columnLbl.backgroundColor = [UIColor clearColor];


            [columnLbl setText:@":"];

            [cell.contentView addSubview:columnLbl];


            UILabel * vendorValueLbl = [[UILabel alloc] initWithFrame:CGRectMake(98, 2, 195, 39)];

            [[vendorValueLbl layer] setCornerRadius:5.0f];
            //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]];
            vendorValueLbl.backgroundColor = [UIColor clearColor];


            [vendorValueLbl setText:[theDataObject.routeTableAry objectAtIndex:indexPath.section]];

            [cell.contentView addSubview:vendorValueLbl];
        }
        if (indexPath.row==3) {
            UILabel * vendorLbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 2, 60, 39)];
            [[vendorLbl layer] setCornerRadius:5.0f];
            //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]];
            vendorLbl.backgroundColor = [UIColor clearColor];


            [vendorLbl setText:@"Date"];

            [cell.contentView addSubview:vendorLbl];


            UILabel * columnLbl = [[UILabel alloc] initWithFrame:CGRectMake(80, 2, 10, 39)];

            columnLbl.backgroundColor = [UIColor clearColor];


            [columnLbl setText:@":"];

            [cell.contentView addSubview:columnLbl];


            UILabel * vendorValueLbl = [[UILabel alloc] initWithFrame:CGRectMake(98, 2, 195, 39)];

            [[vendorValueLbl layer] setCornerRadius:5.0f];
            //[vendorLbl setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]];
            vendorValueLbl.backgroundColor = [UIColor clearColor];


            [vendorValueLbl setText:[theDataObject.dateTableAry objectAtIndex:indexPath.section]];

            [cell.contentView addSubview:vendorValueLbl];
        }

    }
    return cell;
}



Best Answer-推荐答案


只需将 dequeueReusableCellWithIdentifier 设置为 nil,如下所示..

UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: nil];

关于iphone - 当 TableView 滚动比值更改时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14353280/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap