1

第一张有主页按钮问题的图片 第二张图片带栏

我的 tableview 有两个问题,即 tablefooterview 中的“Go Home”按钮在尚未到达 tableview 末尾时显示(在屏幕中间)。正如您在第一张图片中看到的,主页按钮出现在屏幕中间,这是我不想要的。它必须保持在表格的底部。

我的第二个问题是分段控件,它通常位于视图的顶部,在我的一个单元格中再次出现,它不属于它。我已确保已禁用单元重用标识符。

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

编辑:添加代码

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

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;

}

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

4

1 回答 1

0

嘿,您可以动态地为分段控件和按钮编写代码,而不是放置静态代码。

例如。

- (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];
        }
     }
 }

希望它会工作。谢谢。

于 2013-01-11T04:18:31.153 回答