在分组的uitableview中设置单元格的宽度

时间:2013-06-13 04:16:13

标签: iphone ios

我正在尝试使用此代码来设置表加载时的单元格宽度。但是它在didSelectRowAtIndexPath方法中正常工作,但在 cellForRowAtIndexPath 帮助我不起作用。

cell.frame = CGRectMake(50, cell.frame.origin.y, 275, 44)

所以当我们点击单元格时,它会在加载时不直接改变宽度。 是的,我也尝试过 if(cell == nil)     {         cell = [[UITableViewCell alloc] initWithFrame:CGRectMake(30,cell.frame.origin.y,275,44)];     }

查看我的所有表方法代码

#pragma mark - Table Method

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 44;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 7;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return ((section == 0) ?
            3 : (section == 1) ?
            1 : (section == 2) ?
            1 : (section == 3) ?
            2 : (section == 4) ?
            1 : (section == 5) ?
            1 : (section == 6) ?
            1 : 1);
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithFrame:CGRectMake( 30, cell.frame.origin.y, 275, 44)];
    }
    if (indexPath.section == 0) {

       cell.frame = CGRectMake(50, cell.frame.origin.y, 275, 44);
        return cell;

    }
   if (indexPath.section >= 1)
    {

        cell.frame = CGRectMake( 30, cell.frame.origin.y, 200, 44);

    cell.textLabel.text=@"Dhaval";
    }

        return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell =[tableview cellForRowAtIndexPath:indexPath];


    cell.frame = CGRectMake(50, cell.frame.origin.y, 275, 44);

}

0 个答案:

没有答案