我在编程iOS时遇到了一个问题:当我尝试为我的tableView制作自定义编辑按钮时,我无法将其设置为动画。下面是我的初始化实现代码如下:setEditing:animated:缺少动画?
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
myTableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] style:UITableViewStylePlain];
myTableView.delegate = self;
myTableView.dataSource = self;
myTableView.autoresizesSubviews = YES;
.......
self.view = myTableView;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(setEditing:animated:)];
self.navigationItem.rightBarButtonItem = addButton;
[addButton release];
}
然而,当我用self.editButtonItem而不是我的Add按钮,编辑模式是动画。这是我的setEditing:animated:方法。我可以让我的tableview进入编辑模式,插入按钮立即出现在左边。我试过[myTableView reloadRowsAtIndexPaths:[myTableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationAutomatic];
但它在iOS 4.3上没有帮助。
- (void)setEditing:(BOOL)editing animated:(BOOL)animated{
if(self.editing){
[super setEditing:NO animated:YES];
[myTableView reloadRowsAtIndexPaths:[myTableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationAutomatic];
[myTableView reloadData];
self.navigationItem.title = [selectedCellItem valueForKey:@"name"];
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(setEditing:animated:)];
self.navigationItem.rightBarButtonItem = addButton;
[self.navigationItem.rightBarButtonItem setStyle:UIBarButtonItemStylePlain];
[addButton release];
}
else {
[super setEditing:YES animated:YES];
[myTableView reloadRowsAtIndexPaths:[myTableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationAutomatic];
self.navigationItem.title = @"Add to Favourites";
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(setEditing:animated:)];
self.navigationItem.rightBarButtonItem = doneButton;
[self.navigationItem.rightBarButtonItem setStyle:UIBarButtonItemStyleDone];
[doneButton release];
[myTableView reloadData];
}
}
对不起,我已经试过了,但还是没有用=( – Yangrui
尝试取出reloadRows ..电话,它们是什么,因为他们会立即更换电池,因此可以发生在你的动画完成 – jrturton
是的,我已经删除了我行应修改我的[超级setEditing:NO动画:是];?。??我只是想在我的导航栏上制作一个自定义编辑按钮或者我可以在哪里找到一些易于理解的代码? – Yangrui