UITableview reloaddata с анимацией

У меня есть 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];
 }
55
Какая анимация? что у вас есть попытка сделать это?
добавлено автор CRDave, источник
поместите этот код в свой вопрос, таким образом, кто-то может помочь u лучше.
добавлено автор CRDave, источник
анимация как я хочу показать ряд один за другим. я попробовал этот метод - (пустота) reloadRowsAtIndexPaths: (NSArray ) indexPaths withRowAnimation: (UITableViewRowAnimation) анимация {NSIndexPath rowToReload = [NSIndexPath indexPathForRow: [количество имен] inSection:0]; NSArray* rowsToReload = [NSArray arrayWithObjects:rowToReload, ноль]; [tableDetails reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];}
добавлено автор Naveen Pathiyil, источник

9 ответы

Чтобы добавить к правильному ответу, если вы хотите перезагрузить все разделы в вашем UITableView , необходимо будет сделать следующее:

ObjC

NSRange range = NSMakeRange(0, [self numberOfSectionsInTableView:self.tableView]);
NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
[self.tableView reloadSections:sections withRowAnimation:UITableViewRowAnimationAutomatic];

Свифт

let range = NSMakeRange(0, self.tableView.numberOfSections)  
let sections = NSIndexSet(indexesIn: range)               
self.tableView.reloadSections(sections as IndexSet, with: .automatic) 

Это перезагрузит все в табличном представлении с анимацией. Как босс.

87
добавлено
Быстро 3 - позволяют диапазону =, NSMakeRange (0, self.tableView.numberOfSections) позволяют разделам = NSIndexSet (indexesIn: диапазон) self.tableView.reloadSections (разделы как IndexSet, с: .automatic)
добавлено автор Cristian Cardoso, источник
работа как босс в быстро. Спасибо
добавлено автор Shobhakar Tiwari, источник
@TimWindsorBrown, как перезагрузить табличное представление с новыми данными "Различные данные из исходного массива"
добавлено автор Mohammad Eliass Alhusain, источник
Это предполагает, что количество раздела не делает измененный. Я еще обеспечил его с этим тестом [self.tableView numberOfSections] == [сам numberOfSectionsInTableView:self.tableView] , я просто звоню [self.tableView reloadData]
добавлено автор Axel Guilmin, источник
@AxelGuilmin you' ре, столь правильное, это терпит крах иначе!
добавлено автор Bob de Graaf, источник
Да that' s полный способ обращаться с ним.
добавлено автор Tim Windsor Brown, источник

используйте этот метод,

[_tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
52
добавлено
@AlexeyF тогда вы вставили бы их всех в то, что NSIndexSet, и называют метод выше. Если вы can' t делают это, there' s что-то не так с вашим кодовым дизайном.
добавлено автор Patrick Bassut, источник
Также это doesn' t дают правильный эффект, если вы хотите держать заголовок раздела, но не ряды..
добавлено автор Sumit Gera, источник
Это работает не правильно, если у вас есть больше чем один раздел, или количество разделов изменяется во время, перезагружают
добавлено автор Alexey F, источник

Свифт 3

UIView.transition(with: myTableView, duration: 1.0, options: .transitionCrossDissolve, animations: {self.myTableView.reloadData()}, completion: nil)

Свифт 2

UIView.transitionWithView(myTableView, duration: 1.0, options: .TransitionCrossDissolve, animations: {self.myTableView.reloadData()}, completion: nil)

Я пошел с этим в Свифте

24
добавлено
это - лучшее решение, потому что оно позволяет перезагружать разделы с различным количеством рядов прежде и после требования
добавлено автор Enrico Cupellini, источник

Вы сначала говорите tableView ожидать обновления с beginUpdates . Тогда обновите соответствующие разделы (если у вашего tableView есть только один раздел, тогда просто передают ноль для числа раздела). Вот то, где вы определяете анимацию - можно играть вокруг с нею, чтобы получить эффект, который вы хотите. После этого вы звоните endUpdates на tableView. Определение типа для UITableViewRowAnimation определяет:

typedef enum {
   UITableViewRowAnimationFade,
   UITableViewRowAnimationRight,
   UITableViewRowAnimationLeft,
   UITableViewRowAnimationTop,
   UITableViewRowAnimationBottom,
   UITableViewRowAnimationNone,
   UITableViewRowAnimationMiddle,
   UITableViewRowAnimationAutomatic = 100
} UITableViewRowAnimation;

Игра вокруг, чтобы видеть, какой вы хотите. Даже отбор UITableViewRowAnimationNone может иногда иметь хороший эффект. Обновление стола кодирует ниже:

    [self.tableView beginUpdates];
    [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
    [self.tableView endUpdates];
21
добавлено

В Быстрых 3 можно просто добавить следующий расширение , чтобы UITableView :

extension UITableView {
    func reloadData(with animation: UITableViewRowAnimation) {
        reloadSections(IndexSet(integersIn: 0..
10
добавлено
Это было потрясающим решением моей проблемы. Зародыш спасибо!
добавлено автор Frizzo, источник

можно использовать reloadSections:withRowAnimation: функции. Проверить Ссылка класса UITableView.

Проверьте это reloadData с Анимацией который уже ответил на ваш вопрос.

5
добавлено
после отбора вашего dropdown вы могли бы назвать один метод, поместить этот код там.
добавлено автор arthankamal, источник
тогда сделайте это в вашем didselectrow
добавлено автор arthankamal, источник
приветствуйте брата..:)
добавлено автор arthankamal, источник
большое спасибо чувак счастливое кодирование:)
добавлено автор Naveen Pathiyil, источник
опуститесь в смысле, это - uitableview, только я называю didselect ряд в indexpath, и затем я населю множество с новым содержанием, и затем я звоню [tableview relaoaddata].
добавлено автор Naveen Pathiyil, источник
но где я должен поместить код? [tableDetails reloadSections: [NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade]?
добавлено автор Naveen Pathiyil, источник

Ниже метода поддерживается tableView для анимации:

- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);

Использование:

//Reload tableView with animation
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationRight]; 

Различные типы доступной анимации:

typedef NS_ENUM(NSInteger, UITableViewRowAnimation) {
UITableViewRowAnimationFade,
UITableViewRowAnimationRight,          //slide in from right (or out to right)
UITableViewRowAnimationLeft,
UITableViewRowAnimationTop,
UITableViewRowAnimationBottom,
UITableViewRowAnimationNone,           //available in iOS 3.0
UITableViewRowAnimationMiddle,         //available in iOS 3.2.  attempts to keep cell centered in the space it will/did occupy
UITableViewRowAnimationAutomatic = 100 //available in iOS 5.0.  chooses an appropriate animation style for you    };

Надежда это могло бы помочь!

3
добавлено

Попытайтесь Оживить в то время как Изменение Перехода представления, перезагружая UITableView

[UIView transitionWithView:_yourTableView 
                  duration:0.40f 
                   options:UIViewAnimationOptionTransitionCrossDissolve 
                animations:^(void) {[_yourTableView reloadData];}  
                completion:nil];
2
добавлено

Я попробовал это и мой , Стол Оживленный с плавной анимацией

//Поместите этот код, где вы хотите перезагрузить свое табличное представление

dispatch_async(dispatch_get_main_queue(), ^{
    [UIView transitionWithView:<"TableName"> 
                      duration:0.1f 
                       options:UIViewAnimationOptionTransitionFlipFromRight 
                    animations:^(void) {
                        [<"TableName"> reloadData];
                    } completion:NULL];        
});
2
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.