나는 UITableView
이 있으며 위 그림이 있습니다. 때로는 많은 콘텐츠가 있으므로이 헤더를 스크롤해야하고 (Facebook 앱과 같이) 아래로 스크롤하면 immediatelly로 표시되어야합니다. 그리고 나는 내 머리글을 새로 고치기 위해 당기려고했을 때 UITableView
(내가 UITableViewHeader
을 사용하면 UITableView와 함께 아래로 이동해야 함)보다 위에 있어야한다. 당신은 무엇을 조언 할 수 있습니까? 나는 정말로 갇혔다. 미리 감사드립니다.UITableView 상단에 UIView를 추가하십시오.
답변
#pragama mark delegate UIScrollView
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[self scrollViewAnimation:scrollView];
}
-(void)scrollViewAnimation:(UIScrollView *)scrollView{
if (scrollView==YourtableViewName) {
[YourtableViewName layoutIfNeeded];
if ([scrollView.panGestureRecognizer translationInView:scrollView.superview].y > 0) {
NSLog(@"Scrolling Up");
[UIView animateWithDuration:0.25 animations:^{
viewTop_topConstraint.constant = 0;
[self.view updateConstraintsIfNeeded];
[self.view layoutIfNeeded];
} completion:^(BOOL finished) {
}];
} else if ([scrollView.panGestureRecognizer translationInView:scrollView.superview].y < 0) {
NSLog(@"Scrolling Down");
if (dataArray.count>4) {
[UIView animateWithDuration:0.25 animations:^{
viewTop_topConstraint.constant = -120;
[self.view updateConstraintsIfNeeded];
[self.view layoutIfNeeded];
} completion:^(BOOL finished) {
}];
}
}
}
내가 원하는 것을 구현하기 위해 조금 노력했습니다. 그리고이 코드를 생각해 냈습니다. 그러나 너는 너 자신 약간 경미한 조정을해야 할지도 모르다. 방금 sectionHeight
변수를 60으로 설정하고이를 섹션 높이로 반환하는 데 사용했습니다. 이 변수를 viewDidLoad
또는 viewWillAppear
방법으로 60 (또는보기의 높이)로 설정해야합니다. 그리고 return
UIView
위의 UITableView
위에 표시하고 viewForHeaderInSection
방법으로 표시하려고합니다. 코드와 관련하여 혼란이 있으면 알려주십시오.
#pragma mark - TableView Data Source Events
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 50;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"DeliveryPackageCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
cell.textLabel.text = @"1";
return cell;
}
#pragma mark - TableView Delegate Events
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 60;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width,sectionHeight)];
[view setBackgroundColor:[UIColor lightGrayColor]];
return view;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return sectionHeight;
}
#pragma mark - Srcoll View Delegates
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
self.initialContentOffset = scrollView.contentOffset.y;
self.previousContentDelta = 0.f;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat prevDelta = self.previousContentDelta;
CGFloat delta = scrollView.contentOffset.y - self.initialContentOffset;
if (delta > 0.f && prevDelta <= 0.f) {
// started scrolling positively
if(sectionHeight != 0)
{
sectionHeight = 0;
[tableView reloadData];
}
} else if (delta < 0.f && prevDelta >= 0.f) {
// started scrolling negatively
if(sectionHeight == 0)
{
sectionHeight = 60;
[tableView reloadData];
}
}
self.previousContentDelta = delta;
}
답장을 보내 주셔서 감사합니다. 그러나 스크롤 할 때 정말 나빠요. 많은 테이블이 새로 고칩니다. 그리고 일부 스크롤 응용 프로그램 충돌 후. –
흠, 메모리로 인해 응용 프로그램이 다운 되었습니까? 위 표는 각 방향이 변경된 후에 한 번만 다시로드됩니다. 이것은 사실이 아니어야합니다. – Abdul91
그리고 코드 헤더에서 천천히 스크롤되지 않았습니다. Immediatelly dissapears. :( –
- 1. xib에서 UIView를 UIScrollView에 추가하십시오.
- 2. UIView를 UITabBarItem에 추가하십시오.
- 3. UIView를 항상 앱 상단에 두십시오.
- 4. UiTableView 상단에 버튼 만들기
- 5. UITableView 상단에 틈새가 생깁니다.
- 6. XCode는 uitableview 위에 uiview를 만듭니다.
- 7. 목록보기 상단에 항목을 추가하십시오.
- 8. MKMapPoint를 사용하여 MKmapview에 uiview를 추가하십시오.
- 9. 프로그래밍 방식으로 UIView를 UITableView의 맨 아래에 추가하십시오.
- 10. 상단에 UITableView 내부에 행을 삽입합니다.
- 11. UITableView 상단에 검색 막대 추가하기
- 12. 장면 상단에 UIView를 추가하는 SpriteKit이 작동하지 않음
- 13. UIView를 현재보기 (iPhone) 상단에 측면에서 슬라이드하는 방법
- 14. UIView를 내 모델보기 컨트롤러 상단에 가져옴
- 15. UITableView에 숨겨진 UIView를 UIRefreshControl과 비슷하게 추가하십시오.
- 16. 테이블 상단에 새 행을 추가하십시오.
- 17. UITableView 후에 UITabBar 앞에 UIView를 추가 하시겠습니까?
- 18. UITableViewCell과 UITableView 사이에 NSLayoutContraint를 추가하십시오.
- 19. UITableview 다른 클래스의 데이터를 추가하십시오.
- 20. 주 UITableView 상단에 UITableView 오버레이를 구현할 수 있습니까?
- 21. UIView를 서브 클래 싱하고 속성을 추가하십시오.
- 22. 코드를 통해 UIView를 만들고 아이폰에 이벤트를 추가하십시오.
- 23. UITableView reloadSections는 행 상단에 섹션 헤더를 만듭니다.
- 24. uitableview 상단에 셀을 삽입하면 문제가 발생합니다.
- 25. UITableView 상단에 올바르게 표시 할 UILabel을 가져올 수 없습니다.
- 26. iOS : UITableView 위에있는 UIView를 제거하면 테이블과 상호 작용할 수 없게됩니다.
- 27. 화면 상단에 즐겨 찾기 되돌리기를 추가하십시오.
- 28. 블록 레벨 요소의 오른쪽 상단에 단추를 추가하십시오.
- 29. Android : 상단에 이미지가있는 목록을 만들려면 텍스트를 추가하십시오.
- 30. 사용자 정의 UIView UIViewController 상단에 표시
체크 아웃이 LIB [TLYShyNavBar] (https://github.com/telly/TLYShyNavBar) – Tj3n
나는 아래로 스크롤 할 때 늘 사라지고 있기 때문에 섹션 헤더 질문에서 가정하자? – Abdul91
@ Abdul91 네, 맞습니다. –