0

UITableViewCell のボタンに問題があります。私を助けてください。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
        switch (indexPath.section) {
            case 0:
                break;
            case 2:{
                    cell.accessoryType = UITableViewCellAccessoryNone;
                    // Make backgroung invisible
                    [self cellBackground:cell];
                    // Make the save button
                    [self saveButton:cell];

                    [self showButton:cell];

                }
                break;

        }
    } 
    return cell;
}
- (void)saveButton:(UITableViewCell *)cell {
    UIButton *saveButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [saveButton setTitle:@"Save" forState:UIControlStateNormal];
    saveButton.frame = CGRectMake(45, 0, 300, 45);
    saveButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
    saveButton.contentEdgeInsets = UIEdgeInsetsMake(0,10,0,0);

    [cell addSubview:saveButton];
}

- (void)showButton:(UITableViewCell *)cell{
    UIButton *showButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [showButton setTitle:@"Show" forState:UIControlStateNormal];
    showButton.frame = CGRectMake(45, 0, 300, 45);
    showButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
    showButton.contentEdgeInsets = UIEdgeInsetsMake(0,10,0,0);

    [cell addSubview:showButton];
 }

indexPath.section = 2にsaveButtonとshowButtonを並べて配置したいだけで、ボタンのサイズは横向きまたは縦向きのセルのサイズに収まる必要があります。その方法を知っていますか?ありがとう。

4

2 に答える 2

-1

まず第一に、これらのセルを間違って構築しています:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

これは nil を返す可能性があるため、次を確認する必要があります。

 if(!cell) { 
      //construct new cell here.
 }

両方の回転を最適に処理するには、button.frame.origin.x = cell.view.frame.width - 10.0f を配置し、アンカーをボタンの右側に設定します。

于 2013-09-12T12:34:14.350 に答える