2012-12-14 30 views
5

Tôi gặp một số sự cố khi sử dụng bố cục tự động với Chế độ xem vùng chứa (trong cả hai trường hợp: với mẫu ngăn chặn chế độ xem được sử dụng từ ios5 và chế độ xem vùng chứa đơn giản).(bố cục tự động) chế độ xem vùng chứa sẽ thay đổi kích thước nhưng các bản xem phụ không

Tôi có loại bộ điều khiển Chi tiết tùy chỉnh, tôi có thể thay đổi kích cỡ vùng chứa bên trái sau khi một số hành động của người dùng và tương quan với bộ điều khiển phù hợp phải thay đổi kích thước cho phù hợp với không gian mới không được sử dụng.

Đối với bộ điều khiển "chi tiết", tôi thiết lập bộ điều khiển bằng Xib và sử dụng bố cục tự động Tôi có một số giao diện bên trong nó. ở định dạng trực quan, chúng sẽ có dạng như sau:

  • V: | [headerView] [contentView] [footerView] |
  • H: | [headerVieW]
  • H: | [contentView]
  • H: | [footerView]

đây chỉ là một đại diện để undestand vấn đề.

Nếu tôi cố gắng thay đổi kích thước chi tiết bộ điều khiển. Khung hình này mở rộng chính xác nhưng các bản phụ không.

trong phương thức - (void) viewDidLayoutSubviews của bộ điều khiển đó tôi đã cố gắng đặt khung theo cách thủ công và hoạt động nhưng đó không phải là điều tôi cho là vì tôi đang sử dụng bố cục tự động!

Quay lại đầu trang không thay đổi kích thước.

Bất cứ ai cũng có thể giúp tôi?

Cảm ơn!

+0

Bao giờ nhận được bất cứ nơi nào với điều này? Có vẻ như nhiều người đang gặp vấn đề tương tự, nhưng không tìm thấy giải pháp nào! – elsurudo

Trả lời

1

Dựa trên mô tả của bạn về các ràng buộc, tôi nghĩ hành vi được mô tả chính xác là những gì bạn đã nói.

Lưu ý rằng các hạn chế theo chiều ngang của bạn yêu cầu các góc nhìn phải tuôn ra với phía bên trái của superviw của chúng. Họ không, tuy nhiên, nói bất cứ điều gì về cách họ nên liên quan đến bên phải o superview. Do đó, việc thay đổi chiều rộng của superview không làm gì cả; họ chỉ ở tuôn ra với kích thước trái và giữ bất cứ chiều rộng nào mà các ràng buộc nội bộ của họ cung cấp.

Nếu bạn muốn lượt xem thay đổi kích thước với người giám sát của họ, thì bạn cần phải thêm các ràng buộc ở phía sau. Cụ thể, các ràng buộc của bạn có thể trông giống như sau:

H:|[headerView]| 
H:|[contentView]| 
H:|[footerView]| 

Hoặc có thể bạn muốn chúng chỉ thu nhỏ nếu tầm nhìn quá hẹp, nhưng nếu không thì sẽ không bị kéo dài. Sau đó, bạn có thể làm điều này:

H:|[headerView]-(>=10)-| 
H:|[contentView]-(>=10)-| 
H:|[footerView]-(>=10)-| 

Dù sao, có vẻ như rằng gốc rễ của vấn đề của bạn là quan điểm không gắn liền với cạnh phải của SuperView trong bất kỳ cách nào, và điều này không được gắn với nó chiều rộng theo bất kỳ cách nào. Việc thêm các ràng buộc đó sẽ khắc phục được sự cố.

0

Nếu chế độ xem trong định dạng hình ảnh của bạn nằm giữa "|" (đó là trường hợp của bạn)

CGSize fittingSize = [container systemLayoutSizeFittingSize: UILayoutFittingCompressedSize]; 
container.frame = CGRectMake(0, 150, 320, fittingSize.height); 
Các vấn đề liên quan