UITableView和Cell在错误的地方显示内容

时间:2013-01-11 00:16:53

标签: iphone xcode uitableview reuseidentifier

first image with home button problem second image with bar

我的tableview有两个问题,即tablefooterview中的“Go Home”按钮显示(在屏幕中间)尚未到达tableview的结尾。正如您在第一张图片中看到的那样,主页按钮发生在屏幕中间,这是我不想要的。它必须留在桌子底部。

我的第二个问题是分段控件,它通常位于视图的顶部,在我的单元格中重新固定,而不属于它。我已确保禁用了单元格reusidentifier。

单元格中只填充了文本,所以我不明白为什么分段控件会出现。

编辑:已添加代码

填充单元格的代码:(只是它的一部分,但它只是另一个单元格中的其他文本,没有任何变化)

if(indexPath.section == 2){
    [[cell textLabel] setTextAlignment:UITextAlignmentLeft];
    [[cell textLabel] setText:_actor.actorBeschrijving];

    if([[cell textLabel] text] == nil)
    {
        [[cell textLabel] setText:@"Druk om een beschrijving toe te voegen"];
        [[cell textLabel] setTextColor:[UIColor grayColor]];

    }
}


if(indexPath.section == 3 && control.selectedSegmentIndex == 1){
    if([has count] == 0){

        [[cell textLabel] setTextAlignment:UITextAlignmentLeft];
        [[cell textLabel] setText: @"Voeg een nieuw object toe"];
    }
    else{

        if(indexPath.row < [has count]){


            AnObject *object = (AnObject*)[has objectAtIndex:indexPath.row];
            [[cell textLabel] setTextAlignment:UITextAlignmentLeft];
            [[cell textLabel] setText:object.objectNaam];

        }

        if(indexPath.row == [has count]){
            [[cell textLabel] setTextAlignment:UITextAlignmentLeft];
            [[cell textLabel] setText:@"Voeg een nieuw object toe"];    
        }
    }

}
if(indexPath.section == 3 && control.selectedSegmentIndex == 3){

    if([isResponsible count] == 0){

        [[cell textLabel] setTextAlignment:UITextAlignmentLeft];
        [[cell textLabel] setText: @"Voeg een nieuwe goal toe"];
    }
    else{

        if(indexPath.row < [isResponsible count]) {


            Goal *goal = (Goal*)[isResponsible objectAtIndex:indexPath.row];
            [[cell textLabel] setText:goal.goalNaam];

        }


        if(indexPath.row == [isResponsible count]){
            [[cell textLabel] setTextAlignment:UITextAlignmentLeft];
            [[cell textLabel] setText: @"Voeg een nieuwe goal toe"];


        }
    }

}

页脚代码:

    @property (nonatomic, retain) IBOutlet UIView *myFooterView;


-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

{
    if(section == tableView.numberOfSections - 1)
    return 50.0f;

}

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

if(myFooterView == nil) {
    //allocate the view if it doesn't exist yet
    myFooterView  = [[UIView alloc] init];


    //create the button
    UIButton *footButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    [footButton setFrame:CGRectMake(110, 10, 100, 30)];

    //set title, font size and font color
    [footButton setTitle:@"Go Home" forState:UIControlStateNormal];
    [footButton.titleLabel setFont:[UIFont boldSystemFontOfSize:18]];

    //set action of the button
    [footButton addTarget:self action:@selector(clickPressed:)
         forControlEvents:UIControlEventTouchUpInside];

    //add the button to the view
    [myFooterView addSubview:footButton];
}

//return the view for the footer
return myFooterView;

}

额外评论:我在不同视图(不同的桌面视图)中使用相同的页脚只有一个部分,此处按钮显示正确。

1 个答案:

答案 0 :(得分:0)

嘿你可以编码分段控制&amp;按钮动态而不是静态。

对于例如。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     static NSString *CellIdentifier = @"MyIdentifier";
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
     cell.selectionStyle = UITableViewCellSelectionStyleNone;

     if (indexPath.section == 0)
     {
        if (indexPath.row == 0)
        {
             //Dynamic Code for Segmented Control
             [cell.contentView addSubview:segementedControl];
        }
     }

     -----------

     if (indexPath.section == 4) // For Eg. 5 is the last section. You can use your own
     {
        if (indexPath.row == 0)
        {
             //Dynamic Code for Button
             [cell.contentView addSubview:button];
        }
     }
 }

希望它能奏效。感谢。