UITableview reloaddata with animation
배열 및 드롭 다운 목록에서 채워진 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];
}
정답을 추가하려면 모든 섹션 을 다시로드 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)
애니메이션과 함께 테이블 뷰의 모든 것을 다시로드합니다. 보스처럼.
이 방법을 사용하십시오.
[_tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
스위프트 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)
나는 이것을 Swift로 갔다.
먼저 tableView에 beginUpdates
. 그런 다음 관련 섹션을 업데이트하십시오 (tableView에 섹션이 하나만있는 경우 섹션 번호로 0을 전달하십시오). 여기에서 애니메이션을 지정합니다. 원하는 효과를 얻기 위해 함께 놀 수 있습니다. 그 후 endUpdates
tableView 를 호출 합니다. UITableViewRowAnimation의 typedef는 다음을 지정합니다.
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];
Swift 3에서는 다음 extension
을 간단히 추가 할 수 있습니다 UITableView
.
extension UITableView {
func reloadData(with animation: UITableView.RowAnimation) {
reloadSections(IndexSet(integersIn: 0..<numberOfSections), with: animation)
}
}
reloadSections:withRowAnimation:
기능 을 사용할 수 있습니다 . UITableView 클래스 참조를 확인하십시오 .
이미 질문에 답한 애니메이션 으로이 reloadData를 확인하십시오 .
아래 방법은 애니메이션을 위해 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 };
이것이 도움이되기를 바랍니다!
나는 이것을 시도했고 나의 Table
것은 Animated
부드러운 애니메이션으로
// 테이블 뷰를 다시로드 할 위치에이 코드를 넣습니다.
dispatch_async(dispatch_get_main_queue(), ^{
[UIView transitionWithView:<"TableName">
duration:0.1f
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^(void) {
[<"TableName"> reloadData];
} completion:NULL];
});
UITableView를 다시로드하는 동안 뷰의 전환 변경 동안 애니메이션을 시도합니다.
[UIView transitionWithView:_yourTableView
duration:0.40f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^(void) {[_yourTableView reloadData];}
completion:nil];
참고 URL : https://stackoverflow.com/questions/14576921/uitableview-reloaddata-with-animation
'developer tip' 카테고리의 다른 글
JPA 대 Spring JdbcTemplate (0) | 2020.11.09 |
---|---|
파이썬 : 나만의 연산자 정의? (0) | 2020.11.09 |
double에서 소수 부분 가져 오기 (0) | 2020.11.09 |
모든 하위 프로세스가 완료 될 때까지 프로세스를 기다리시겠습니까? (0) | 2020.11.08 |
모바일 크롬이 스크롤시 크기 조정 이벤트를 발생시킵니다. (0) | 2020.11.08 |