2012-07-12 19 views
5

Tôi đang xây dựng một ứng dụng có luồng nội dung xã hội và đang cố gắng tìm hiểu hành vi của luồng của ứng dụng trên instagram. Vì vậy, về cơ bản một tiêu đề hàng đầu di chuyển ra khỏi màn hình nhưng bị trả lại giữa điều đó và nội dung. Tôi có thể làm cho tiêu đề đầu cuộn ra khỏi màn hình và tôi có thể làm cho chế độ xem không bị trả lại nhưng tôi muốn sử dụng Kéo để làm mới và kết thúc lên trên thanh điều hướng "giả" UIView. Tôi biết rằng một Navbar bình thường sẽ tạo ra cái này nhưng cái này cuộn ra là một câu chuyện khác.Làm cách nào để thiết lập bảng phân cảnh iOS của tôi bị trả lại như Instagram Stream?

Hiện nay tôi có một UITableview mà có một UIView trên UITableViewCell và tất cả mọi thứ hoạt động tốt, ngoại trừ các thư bị trả lại xảy ra trên UIView. Tôi hình tôi cần phải có được UIView ở trên UITableView tuy nhiên trong UITableViewController bảng phân cảnh sẽ không cho phép tôi đặt UIView phía trên UITableView.

Bất kỳ ý tưởng nào ???

Cảm ơn

+0

không ai huh ??? Tôi nhận thấy ứng dụng Facebook 5 mới cũng có hành vi này trên trang luồng của nó. Tôi thực sự muốn tìm ra ứng dụng này trước khi tôi phát hành ứng dụng của mình đến nơi hoang dã. –

Trả lời

5

Tôi cuối cùng cũng đã làm việc này nên tôi nghĩ tôi sẽ đăng Câu trả lời cho mọi người.

Về cơ bản tôi đặt thanh Điều hướng tiêu chuẩn và sau đó trên scrollViewDidScroll Tôi nhận được độ lệch của cuộn và thay đổi khung dựa trên đó. Điều này dường như hoạt động hoàn hảo, xem bên dưới cho phương thức scrollViewDidScroll của tôi.

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

    //Initializing the views and the new frame sizes. 
    UINavigationBar *navbar = self.navigationController.navigationBar; 
    UIView *tableView = self.view; 

    CGRect navBarFrame = self.navigationController.navigationBar.frame; 
    CGRect tableFrame = self.view.frame; 

    //changing the origin.y based on the current scroll view. 
    //Adding +20 for the Status Bar since the offset is tied into that. 
    navBarFrame.origin.y = MIN(0, (sender.contentOffset.y * -1)) +20; 
    navbar.frame = navBarFrame; 

    tableFrame.origin.y = MIN(0,MAX(-44,(sender.contentOffset.y * -1))); 
    tableView.frame = tableFrame; 

} 

Ngoài ra, bạn sẽ muốn làm cho TableView cao hơn 44px để bù cho cuộn nếu không khung của bạn sẽ không đủ lớn. Tôi chỉ làm điều này trong viewWillAppear và làm cho khung lớn hơn.

+0

Cảm ơn điều này thực sự hữu ích nhưng tạo ra 1 vấn đề, trên thanh điều hướng trượt đang tăng lên nhưng để trống khoảng trắng ở vị trí của thanh điều hướng và bảng đang cuộn từ khoảng trắng đó. Làm thế nào để giải quyết vấn đề này bạn có thể vui lòng giúp tôi. –

Các vấn đề liên quan