在我的应用程序中,我需要一个编辑按钮来编辑我的表视图,它可以删除一行或者改变它的位置。当我使用默认导航栏时,这真的很简单,但现在我使用的是一个自定义栏,它感染了一个图像视图&现在我需要一个可以编辑表视图的按钮。我没有使用默认导航栏。
所以请帮帮我
发布于 2011-05-09 07:19:17
你只需要设置UITableView的editing
属性,在你的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];
}
}
并将其连接到您的按钮或图像上,如果没有文本,则用setImage
替换setText
。
下面是我使用自定义UIToolbar
的UITableViewController
的init
方法,它将两个按钮添加到导航栏中,而不是右侧的导航栏按钮。
- (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
,它们为这些任务加载新视图。
发布于 2011-05-09 07:18:04
您可以在您的图像视图上添加一个按钮,然后在该按钮上单击将您的tableviewediting设置为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];
发布于 2011-05-09 07:18:24
您可以使用SWIPE删除功能。这可以通过下面的方式来实现。
你需要实现下面3个tableView的委托方法。
tableView:commitEditingStyle:forRowAtIndexPath:
tableView:canEditRowAtIndexPath:
tableView:editingStyleForRowAtIndexPath:
In方法
tableView:editingStyleForRowAtIndexPath:
返回类型应为
UITableViewCellEditingStyleDelete.
https://stackoverflow.com/questions/5933561
复制相似问题