Кнопки в UITableView - PullRequest
       1

Кнопки в UITableView

0 голосов
/ 29 марта 2012

Я хочу создать UITableView, где некоторые ячейки являются кнопками. Помогите мне, как правильно это сделать?

1) Я могу использовать что-то подобное:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] autorelease];
}

if (indexPath.section == 1){
    if (indexPath.row == 0){


         UIButton* loginButton = [[UIButton alloc] initWithFrame:CGRectMake(9,1,302, 48)];
        [loginButton setBackgroundImage:[UIImage imageNamed:@"LoginButton.png"] forState:UIControlStateNormal];
        [loginButton setBackgroundImage:[UIImage imageNamed:@"LoginButton_pressed.png"] forState:UIControlStateSelected];
        [loginButton setTitle:@"Login" forState:UIControlStateNormal];
        [cell setBackgroundColor:[UIColor clearColor]];

        [cell addSubview:loginButton];
        [loginButton release];




    }
}

но я вижу, что кнопка прозрачна и выглядит странно.

2) не используйте никакие кнопки UIB и делайте то, что я хочу, полностью используя UITableViewCells

Спасибо вам за внимание, я совершенно новый для iOS, но я пытаюсь сделать приложение без XIB.

1 Ответ

1 голос
/ 20 февраля 2013

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

        UIButton* loginButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [loginButton setFrame:CGRectMake(5,5,302, 34)];
        [loginButton setBackgroundImage:[UIImage imageNamed:@"LoginButton.png"] forState:UIControlStateNormal];
        [loginButton setBackgroundImage:[UIImage imageNamed:@"LoginButton_pressed.png"] forState:UIControlStateSelected];
        [loginButton setTitle:@"Login" forState:UIControlStateNormal];
        [cell setBackgroundColor:[UIColor clearColor]];
        [cell addSubview:loginButton];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...