Tôi có UIScrollView chứa UIImageView và tôi gặp một số rắc rối để có được hành vi đúng khi iPhone quay.Hình ảnh tỷ lệ để vừa với màn hình xoay vòng trên iPhone
Mục tiêu: tôi đang cố gắng để có được những điều sau khi đi từ dọc sang ngang:
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| | AAAAAA |
|DDDDDDD| --> | CCCCCC |
|EEEEEEE| | EEEEEE |
|FFFFFFF| |_____GGGGGG_____|
|GGGGGGG|
---------
Ở đây toàn bộ hình ảnh trong giao diện chân dung được thu nhỏ để phù hợp với xem phong cảnh khi iPhone quay. Nó cũng là trung tâm. Tôi cũng đang cố gắng duy trì tỷ lệ khung hình. Tương tác của người dùng cũng được bật và người dùng có thể sử dụng toàn bộ màn hình để xoay/thu phóng hình ảnh.
Hiện nay tôi đã sau autoresizingMask
trên scrollview:
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
Nhưng điều này mang lại như sau
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| |AAAAAA |
|DDDDDDD| --> [BBBBBB |
|EEEEEEE| [CCCCCC |
|FFFFFFF| [DDDDDD__________|
|GGGGGGG|
---------
Thiết lập này bảo quy mô và bù đắp từ góc trên bên trái.
Câu hỏi: Có thể nhận hành vi này bằng cách sử dụng autoresizingMask
phù hợp không? Nếu không, chúng ta nên thiết lập
scrollView.autoresizingMask = UIViewAutoresizingNone;
và tự đặt zoomScale
và contentOffset
cho UIScrollView về luân chuyển. Nhưng, điều đó nên được thực hiện ở đâu? Điều gì về hoạt hình thay đổi đó?
Giải pháp: Bằng cách rất nhẹ thay đổi câu trả lời dưới đây tôi có các hành vi trên bằng vào mã bên dưới:
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = UIViewContentModeCenter;
Cảm ơn bạn! Nhanh quá. Để có được hành vi đúng, tôi đã phải thay đổi một chút mã của chúng tôi (xem ở trên), nhưng điều này đặt tôi theo hướng trực tiếp. – user467225
Không hoạt động ở tất cả –