2009-05-12 11 views

ответ

8

Если вы действительно хотите добавить пользовательскую кнопку без подклассов, просто добавьте кнопку к contentView клетки:

[cell.contentView addSubview:customButton]; 

Вы можете установить все характеристики кнопки: рамки, цели, селектор, и т. д. Затем Ad использовал вышеупомянутый вызов, чтобы добавить его в ячейку.

UIButton *customButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
customButton.frame=//whatever 
[customButton setImage:anImage forState:UIControlStateNormal]; 
[customButton setImage:anotherImage forState:UIControlStateHighlighted]; 
[customButton addTarget:self action:@selector(delete) forControlEvents: UIControlEventTouchUpInside]; 
//yadda, yadda, ..... 

Вы можете пометить его как хорошо

customButton.tag = 99999; 

Таким образом, вы можете найти его позже:

UIButton *abutton = (UIButton*) [cell.contentView viewWithTag:99999]; 

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

1

Если единственная цель кнопки состоит в том, чтобы предложить удаление, вы должны изучить UITableViewDataSource, у которого есть метод под названием - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath. Реализовать его следующим образом:

- (BOOL)tableView:(UITableView *)tableView 
canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return YES; 
} 

А затем реализовать:

- (void)tableView:(UITableView *)tableView 
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Database removal code goes here... 
} 

Чтобы использовать эти методы, пусть ваш UITableViewController реализовать протокол UITableViewDataSource делать что-то вроде:

MyClass : UITableViewController <UITableViewDataSource> 

в вашем заголовке файл, и обязательно запомните, чтобы установить источник данных viewController в self.

+0

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

+0

метод canEditRowAtIndexPath автоматически добавит кнопку удаления в каждую строку в режиме редактирования. Попробуйте :) – tmadsen

+0

, но я хочу сделать это с помощью настраиваемой кнопки. –

Смежные вопросы