2016-04-21 5 views
2

В моем приложении я хочу исправить кнопку в нижней части таблицы.Как исправить кнопку в нижней части таблицы?

Вот мой первый экран,

enter image description here

Кнопка создана в разделе колонтитула

-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section 
{ 
if(tableView == educateTbl) 
{ 
    float footerWidth = 150.0f; 
    float padding = 10.0f; 
    UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, footerWidth, 50.0)]; 
    footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

    UIButton *addEdu = [[UIButton alloc]initWithFrame:CGRectMake(padding, 0, footerWidth - 2.0f * padding, 44.0f)]; 
    addEdu.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; 
    addEdu.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; 

    [addEdu setTitle:@"Add Education" forState:UIControlStateNormal]; 
    [addEdu addTarget:self action:@selector(addEducation:) forControlEvents:UIControlEventTouchUpInside]; 
    [addEdu setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
    addEdu.frame=CGRectMake(0, 0, 200, 30); 
    [footerView addSubview:addEdu]; 
    return footerView; 
} 
return nil; 
} 

После того, что я получаю, как это,

enter image description here

Как могу я исправить это?

+0

добавить ограничение на кнопку –

+0

я предложил бы создать представление и установить его как 'tableView.tableFooterView'. –

+1

Приведенный выше код устанавливает нижний колонтитул для определенного раздела. Попробуйте установить представление как tableFooterView следующим образом: ** self.tableView.tableFooterView = addEdu; ** –

ответ

2

почему вы не сделать что-то вроде этого?

-(void)setTableFooter 
{ 
    float footerWidth = 150.0f; 
    float padding = 10.0f; 
    UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, footerWidth, 50.0)]; 
    footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

    UIButton *addEdu = [[UIButton alloc]initWithFrame:CGRectMake(padding, 0, footerWidth - 2.0f * padding, 44.0f)]; 
    addEdu.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; 
    addEdu.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; 

    [addEdu setTitle:@"Add Education" forState:UIControlStateNormal]; 
    [addEdu addTarget:self action:@selector(addEducation:) forControlEvents:UIControlEventTouchUpInside]; 
    [addEdu setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
addEdu.frame=CGRectMake(0, 0, 200, 30); 
    [footerView addSubview:addEdu]; 

    tableView.tableFooterView = footerView; 

} 

и называют это после того, как вы инициализировать таблицу

+0

Я работаю отлично. –

0
-(void)CreateCustomFooter 
{ 
    float footerWidth = 150.0f; 
    float padding = 10.0f; 
    UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, footerWidth, 50.0)]; 
    footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

    UIButton *addEdu = [[UIButton alloc]initWithFrame:CGRectMake(padding, 0, footerWidth - 2.0f * padding, 44.0f)]; 
    addEdu.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; 
    addEdu.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; 

    [addEdu setTitle:@"Add Education" forState:UIControlStateNormal]; 
    [addEdu addTarget:self action:@selector(addEducation:) forControlEvents:UIControlEventTouchUpInside]; 
    [addEdu setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
addEdu.frame=CGRectMake(0, 0, 200, 30); 
    [footerView addSubview:addEdu]; 

    tableView.tableFooterView = footerView; 

} 

Помещенные выше методы в viewDidLoad() метод, и после инициализации TableView

+0

не работает. Результат –

+0

addEdu.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; addEdu.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; удалите вышеуказанный код, затем попробуйте ......... – iMHitesh

+0

no.не работает –

0

Если вы хотите раздел колонтитула/заголовок свитка с Tableview, вам нужно использовать сгруппированный вид таблицы стиля.

[[UITableView alloc]initWithFrame:CGRectZero style:UITableViewStyleGrouped]

И сгруппированы стиль вид таблицы будет иметь значение по умолчанию BackgroundColor и высоту секции верхнего/нижнего колонтитула. Вы должны установить это значение явно.

Если у вас есть только один раздел, то лучше использовать tableFooterView вместо Разрез колонтитула

0

при прокрутке, что кнопки видимые средства, UITableView ячейки могут быть использованы повторно, так что кнопка доступна, что вы должны сделать средства.

1.Take количество строки в UITableView,

Тогда внутри ячейки для строки в indexpath:

Total number of row ==indexpath.row 
{ 
    //inside this button.hidden=no; 
} 
else 
{ 
    //button.hidden=yes; 
} 
Смежные вопросы