2013-05-21 40 views
13

Làm thế nào tôi có thể đạt được hiệu ứng này?Ẩn phần tử thanh công cụ khi cuộn UITableView (tương tự ứng dụng của Facebook?)

full top view http://i39.tinypic.com/f0vx4l.pnghalf top view http://i40.tinypic.com/2w7486r.png top view almost hidden http://i42.tinypic.com/k95r9.png

+0

Phần nào của ảnh chụp màn hình hiển thị hiệu ứng bạn muốn? Có phải là Trạng thái, ảnh, v.v.? –

+0

Ồ, bạn sẽ cần sử dụng các phương thức ủy quyền scrollview để thực hiện việc này. Nó chỉ là một UIView mà ngồi phía trên bảng xem. – Fogmeister

Trả lời

18

Đây không phải là ngay lập tức đáng chú ý từ ảnh chụp màn hình của bạn, nhưng tôi tin rằng bạn muốn thanh công cụ tiêu đề đó để trượt lên khi người dùng cuộn, phải ? Bạn có thể làm điều này theo một vài cách, và trong tất cả chúng, bạn sẽ phải thực hiện logic cuộn của riêng bạn, có nghĩa là thanh công cụ tiêu đề sẽ trượt bao nhiêu tùy thuộc vào nơi bạn có đã cuộn. Điều đó nói rằng, dưới đây là cách thực hiện:

. Nếu bạn đang sử dụng UITableView, tôi giả sử bạn đã đặt bộ điều khiển chế độ xem là delegate. Vì UITableView là một lớp con của UIScrollView, chỉ cần thêm UIScrollViewDelegate vào bộ điều khiển chế độ xem của bạn. Điều đó sẽ cho chúng ta sự kiện cuộn khi chúng xảy ra. Bạn sẽ muốn thực hiện logic của mình trong scrollViewDidScroll:.

2.. Nếu bạn chỉ đơn giản là sử dụng UIScrollView, chỉ cần đặt trình điều khiển chế độ xem của bạn làm đại biểu, thực hiện UIScrollViewDelegate và thực hiện logic của bạn theo số scrollViewDidScroll:.

Điều đó nói rằng, mã của bạn có thể trông như thế này:

- (void) scrollViewDidScroll:(UIScrollView *)scrollView { 
    CGPoint scrollPos = scrollView.contentOffset; 

    if(scrollPos.y >= 40 /* or CGRectGetHeight(yourToolbar.frame) */){ 
     // Fully hide your toolbar 
    } else { 
     // Slide it up incrementally, etc. 
    } 
} 

Dù sao, hy vọng tôi đã giúp.

5

Nếu bạn đã thiết lập đúng các đại biểu, bảng của bạn sẽ gọi scrollViewDidScroll: khi cuộn.

Vì vậy, trong điều khiển của bạn, bạn có thể thêm một cái gì đó như:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y >0) //means that the user began to scroll down the table 
    { 
     [UIView animateWithDuration:0.4 animations:^{ 
      //animations you want to perform 
     }]; 
    } 
} 
0

này sẽ trả lời câu hỏi của bạn:

iPhone: Hide UITableView search bar by default

cùng khái niệm, điều khiển khác nhau. Bạn có thể đặt UIView trên hàng đầu của tableview hoặc bất kỳ điều khiển có liên quan khác như nút.

Chúc may mắn.

1

Ở đây tôi đã triển khai mã cho UIView Ẩn/Hiển thị khi cuộn bảng. Khi xem bảng di chuyển xuống thì UIView bị ẩn và khi cuộn lên thì UIView hiển thị. Tôi hy vọng nó làm việc cho bạn ...!

Bước 1: - Thực hiện một tài sản trong file .h

@property (nonatomic) CGFloat previousContentOffset; 

Bước 2: - Viết ra mã này trong scrollViewDidScroll Method.

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { 

CGFloat currentContentOffset = scrollView.contentOffset.y; 

if (currentContentOffset > self.previousContentOffset) { 
    // scrolling towards the bottom 
    [self.subButtonView setHidden:YES]; 
} else if (currentContentOffset < self.previousContentOffset) { 
    // scrolling towards the top 
    [self.subButtonView setHidden:NO]; 
} 
self.previousContentOffset = currentContentOffset; 
} 
Các vấn đề liên quan