5

Tôi có một UIViewController và khi một nút được nhấn, tôi muốn một nửa màn hình xem để trượt lên với một UIPicker trong nó.Làm thế nào để trình bày một nửa màn hình chế độ xem?

Tôi đã tạo UIView bằng IB với UIPicker cùng với nút UIToolBar với nút Xong/Hủy.

Tôi làm cách nào để chỉ hiển thị một nửa chế độ xem này và chế độ xem nền vẫn hiển thị nhưng bị mờ hoặc không thể phát.

Tôi đang sử dụng mã này cho đến nay:

- (void)showModalView 
{ 
    [self.popupView setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, self.view.frame.size.height)]; 
    [self.view addSubview:self.popupView]; 

    [UIView animateWithDuration:.2 animations:^{ 
     [self.popupView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
    }]; 
} 

Đây là một pic: http://www.box.net/shared/static/08ji4s0f6i1b8qubrtz6.png

Trả lời

2

Dưới đây là những gì bạn cần mã nguồn mở của nó trên github TDSemiModalView có bộ chọn ngày xem một nửa. Kiểm tra dự án demo bên trong mã. Đây là liên kết .. Hy vọng nó giải quyết vấn đề của bạn.

TDSemiModalClass

4

@ Jon:

PHƯƠNG PHÁP-1:

Make chính của bạn xem transperant bằng cách đặt giá trị alpha của nó thành 0 và thêm một chế độ xem con vào chế độ xem chính chỉ bằng một nửa màn hình chính và giữ nó mờ đục (giá trị alpha là 1) vì nó sẽ theo mặc định.

Sau đó chỉ cần trình bày bộ điều khiển chế độ xem bằng Bộ điều khiển chế độ xem hiện tại.

Hãy nhớ rằng vì sự chuyển đổi, bạn sẽ có thể nhìn thấy một nửa số lượt xem trước đó, nhưng sẽ không thể chạm vào nó vì có chế độ xem chuyển đổi.

PHƯƠNG PHÁP-2:

Một tác phẩm khác xung quanh là để animate một UIView đó là kích thước một nửa số điểm hiện có.

Sau đó, bạn phải chỉ cần làm theo hoạt ảnh của UIView.

Ở đây vì nó chỉ là một UIView sẽ được thêm dưới dạng xem phụ vào chế độ xem hiện tại, bạn sẽ có thể chạm vào phần còn lại của màn hình.

Vì vậy, bạn có thể thực hiện theo một trong hai phương pháp theo yêu cầu của bạn.

Hy vọng điều này sẽ giúp bạn.

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