Nav*_*yil 68 uitableview reloaddata ios
我有一个UItableview,它从数组和下拉列表中填充.如果我选择任何下拉列表行,则将插入具有新值的数组,并且应重新加载tableview.如何使用新的数组内容为tableview设置动画?提前致谢
动画,我想逐一显示行.我尝试过这种方法
- (void)reloadRowsAtIndexPaths:(NSArray )indexPaths withRowAnimation:(UITableViewRowAnimation)animation {
NSIndexPath rowToReload = [NSIndexPath indexPathForRow:[names count] inSection:0];
NSArray* rowsToReload = [NSArray arrayWithObjects:rowToReload, nil];
[tableDetails reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];
}
Run Code Online (Sandbox Code Playgroud)
Tim*_*own 109
要添加正确答案,如果要重新加载您的所有部分,UITableView则需要执行以下操作:
ObjC
NSRange range = NSMakeRange(0, [self numberOfSectionsInTableView:self.tableView]);
NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
[self.tableView reloadSections:sections withRowAnimation:UITableViewRowAnimationAutomatic];
Run Code Online (Sandbox Code Playgroud)
迅速
let range = NSMakeRange(0, self.tableView.numberOfSections)
let sections = NSIndexSet(indexesIn: range)
self.tableView.reloadSections(sections as IndexSet, with: .automatic)
Run Code Online (Sandbox Code Playgroud)
这将使用动画重新加载表视图中的所有内容.像一个老板一样.
mac*_*dit 52
使用这种方法,
[_tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
Run Code Online (Sandbox Code Playgroud)
Tom*_*ard 49
斯威夫特3
UIView.transition(with: myTableView, duration: 1.0, options: .transitionCrossDissolve, animations: {self.myTableView.reloadData()}, completion: nil)
Run Code Online (Sandbox Code Playgroud)
斯威夫特2
UIView.transitionWithView(myTableView, duration: 1.0, options: .TransitionCrossDissolve, animations: {self.myTableView.reloadData()}, completion: nil)
Run Code Online (Sandbox Code Playgroud)
我在Swift中使用了它
Jai*_*ani 22
您首先告诉tableView期望更新beginUpdates.然后更新相关的部分(如果你的tableView只有一个部分,那么只为部分编号传递零).这里是你指定动画的地方 - 你可以玩它来获得你想要的效果.之后,您调用endUpdatestableView.UITableViewRowAnimation的typedef指定:
typedef enum {
UITableViewRowAnimationFade,
UITableViewRowAnimationRight,
UITableViewRowAnimationLeft,
UITableViewRowAnimationTop,
UITableViewRowAnimationBottom,
UITableViewRowAnimationNone,
UITableViewRowAnimationMiddle,
UITableViewRowAnimationAutomatic = 100
} UITableViewRowAnimation;
Run Code Online (Sandbox Code Playgroud)
到处玩,看看你想要哪一个.即使选择UITableViewRowAnimationNone有时也会产生很好的效果.表更新代码如下:
[self.tableView beginUpdates];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
Run Code Online (Sandbox Code Playgroud)
Nat*_*nel 17
在Swift 3中,您只需将以下内容添加extension到UITableView:
extension UITableView {
func reloadData(with animation: UITableView.RowAnimation) {
reloadSections(IndexSet(integersIn: 0..<numberOfSections), with: animation)
}
}
Run Code Online (Sandbox Code Playgroud)