Как редактировать TableView в iPhone? - PullRequest
0 голосов
/ 09 мая 2011

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

так что помогите мне

Ответы [ 4 ]

1 голос
/ 09 мая 2011

Вам просто нужно установить свойство editing для UITableView, в вашем UITableViewController реализовать что-то вроде:

- (void) editingButtonPressed:(id)sender {
  if([self isEditing]) {
    [sender setText:@"Edit" forState:UIControlStateNormal];
    [self setEditing:NO animated:YES];
  } else {
    [sender setText:@"Done" forState:UIControlStateNormal];
    [self setEditing:YES animated:YES];
  }
}

, подключить это к кнопке или изображению и заменить setText на setImage если у вас нет текста.

Вот мой init метод для UITableViewController с использованием пользовательского UIToolbar, который добавляет две кнопки на панель навигации вместо правой кнопки панели навигации.

- (id) init {

    [super initWithStyle:UITableViewStyleGrouped];

    UIBarButtonItem *email = [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Email.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(composeEmail:)] autorelease];
    UIBarButtonItem *bookmark = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addBookmark:)] autorelease];
    [bookmark setStyle:UIBarButtonItemStyleBordered];

    CustomToolbar *buttonToolbar = [[CustomToolbar alloc] initWithFrame:CGRectMake(0, 0, 93, 45)];
    [buttonToolbar setBarStyle:UIBarStyleBlackTranslucent];
    [buttonToolbar setItems:[NSArray arrayWithObjects:email, bookmark, nil] animated:NO];

    [[self navigationItem] setTitle:@"Table with Custom Toolbar"];
    [[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc] initWithCustomView:buttonToolbar] autorelease]];

    [buttonToolbar release];

    return self;
}

При создании кнопок я использую action:@selector(customMethodName) при создании кнопок, чтобы связать свои методы с действиями кнопок в этом случае composeEmail и addBookmark, которые загружают новые представления для этих задач.

0 голосов
/ 09 мая 2011

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

Код метода будет выглядеть следующим образом:

if(tableView.editing)
[tableView setEditing:NO animated:YES]
else
[tableView setEditing:YES animated:YES]

Читать Документация UITableView для получения дополнительной информации.

0 голосов
/ 09 мая 2011

ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ ДИСПЛЕЙ ДЛЯ УДАЛЕНИЯ ФУНКЦИИ. ЭТО МОЖЕТ БЫТЬ СДЕЛАНО ПО СЛЕДУЮЩЕМУ ПУТИ.

вам нужно реализовать следующий метод делегата tableView.

tableView:commitEditingStyle:forRowAtIndexPath:
tableView:canEditRowAtIndexPath:
tableView:editingStyleForRowAtIndexPath: 

В методе

tableView:editingStyleForRowAtIndexPath:

ТИП ВОЗВРАТА ДОЛЖЕН БЫТЬ

UITableViewCellEditingStyleDelete.
0 голосов
/ 09 мая 2011

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

вот код как добавить просмотр изображения и кнопку: -

UIImageView *imageView2=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
    [imageView2 setImage:[UIImage imageNamed:@"bottom bar_gda.png"]];
    [self.view addSubview:imageView2];
    [self.view bringSubviewToFront:imageView2];
    UIButton *deleteButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [deleteButton setFrame:CGRectMake(280, 3, 26, 36)];
    deleteButton.contentMode = UIViewContentModeScaleAspectFill;     
    UIImage *newImage12 = [UIImage imageNamed:@"check.png"];
    [deleteButton setBackgroundImage:newImage12 forState:UIControlStateNormal];
    [deleteButton setBackgroundImage:newImage12 forState:UIControlStateHighlighted];
    [deleteButton addTarget:self action:@selector(editmethod:) forControlEvents:UIControlEventTouchUpInside];
    [imageView2 addSubview:deleteButton]; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...