6

Muốn thực hiện quá trình chuyển đổi bộ điều khiển chế độ xem tương tự như được sử dụng trong facebook và nhiều ứng dụng khác, ảnh chụp được đính kèm. Nó sẽ yêu cầu chơi với khung CoreAnimation hay nó có sẵn trong bộ công cụ?Cách chuyển đổi kiểu facebook

enter image description here

+0

Nó không có sẵn trong Cocoa Touch, bạn sẽ phải có để xem và xem bộ điều khiển trên màn hình và xử lý kéo một trong những đầu một bên mình. –

+0

mọi nội dung/tài nguyên bắt đầu? – Firdous

+0

Xin lỗi. Tôi không biết về bất kỳ tài nguyên tốt nào –

Trả lời

4

Bạn phải sử dụng CoreAnimation trừ khi bạn muốn nhập một khuôn khổ phần thứ 3 rằng ai đó đề nghị, nhưng nó là rất đơn giản để sử dụng CoreAnimation và tôi khuyên bạn nên học nó vì nó rất mạnh mẽ. Đây là cách tiếp cận đơn giản nhất có thể để cung cấp cho bạn một ý tưởng. Bạn có thể cấu trúc nó tốt hơn một chút chính mình một khi bạn có được một hang của nó, để phù hợp với nhu cầu của bạn:

Trong viewController bạn có 2 quan điểm:

@interface yourViewController : UIViewController { 
    // The facebook view in the example, this will be the view that moves. 
    // Init this view with x=0 and let it cover the whole screen. 
    IBOutlet UIView *topView; 

    // The fb menu in the example 
    // Init this view so that it stays behind the topView. 
    IBOutlet UIView *bottomView; 

    BOOL menuVisible; // init to false in viewDidLoad! 
} 

Tạo chúng trong xây dựng giao diện, hoặc bằng cách mã hoặc tuy nhiên bạn đã quen. Làm cho chúng chồng lên nhau để bạn chỉ nhìn thấy phần trên cùng, và để cho buttomView ở lại phía sau nó.

Khi người dùng nhấn vào nút để hiển thị menu:

-(IBAction)menuButtonPressed:(id)sender { 
    // Set up animation with duration 0.5 seconds 
    [UIView beginAnimations:@"ToggleMenu" context:nil]; 
    [UIView setAnimationDuration:0.5]; 

    // Alter position of topView 

    CGRect frame = topView.frame; 

    if (menuVisible) { 
     frame.origin.x = 0; 
     menuVisible = NO; 
    } else { 
     frame.origin.x = 300; //Play with this value 
     menuVisible = YES; 
    } 

    topView.frame = frame; 

    // Run animation 
    [UIView commitAnimations]; 
} 

Tất nhiên, bạn nên thực hiện phân lớp UIView của riêng bạn cho "xem facebook" và "giao diện menu" vv và sử dụng cho TopView và bottomView trong ví dụ trên.

+0

Xin chào, tôi cũng đang cố gắng triển khai cùng chức năng trong ứng dụng iphone của mình. Tôi đã sử dụng hai UIViews như bạn đã đề xuất và sử dụng hoạt ảnh toggleMenu để trượt phần trên cùng. Nhưng kể từ khi tôi có một UINavigationController nó sẽ không trượt với topView, nó chỉ đơn giản là vẫn còn ở vị trí tương tự. Những gì tôi có thể làm gì về điều này? Đánh giá cao đề xuất của bạn rất nhiều. – Yasodha

+0

Vì đây là một giải pháp "tự làm", nó sẽ phức tạp khi kết hợp nó với UINavigationController. Nếu bạn không thể sống với NavigationController ở trên đầu trang của bạn, bạn có thể ngừng sử dụng nó và tạo thanh điều hướng của riêng bạn (tôi muốn giới thiệu) hoặc bạn có thể ẩn nó trong khi menu hiển thị. Tôi chắc chắn có một số cách để đẩy nó sang một bên là tốt, nhưng tôi không thấy đủ giá trị trong đó để cố gắng tìm hiểu làm thế nào ... –

+0

@ user1280436 bạn thử sử dụng navigationcontroller.view để animate sau đó thanh điều hướng cũng hoạt hình . hãy thử nó tôi không làm điều này trước đây. –

1

Hãy xem này, nó có thể cung cấp cho bạn một điểm khởi đầu: https://github.com/Inferis/ViewDeck/

+0

Xin chào, tôi cũng đang cố gắng triển khai cùng chức năng trong ứng dụng iphone của mình. Tôi đã sử dụng hai UIViews như được đề xuất và sử dụng hoạt ảnh toggleMenu để trượt phần trên cùng. Nhưng kể từ khi tôi có một UINavigationController nó sẽ không trượt với topView, nó chỉ đơn giản là vẫn còn ở vị trí tương tự. Những gì tôi có thể làm gì về điều này? Đánh giá cao đề xuất của bạn rất nhiều. Cảm ơn trước. – Yasodha