2011-10-27 30 views
13

Tôi có một UIView cha mẹ có con UIView (UILabel được sử dụng trong mã dưới đây) có khung được đặt thành giới hạn của cha mẹ và autoresizingMask được đặt thành độ rộng linh hoạt và height:Tự động hóa khung của UILabel khi kích hoạt khung hình (kích thước) của cha mẹ UIView

UIView* parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
UILabel* childLabel = [[UILabel alloc] initWithFrame:parentView.bounds]; 
childLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
childLabel.textAlignment = UITextAlignmentCenter; 
childLabel.text = @"Hello"; 

tôi muốn có thể để animate khung quan điểm của cha mẹ, đặc biệt là kích thước của nó, và có subview thay đổi kích thước như một phần của hoạt hình:

[UIView animateWithDuration:1.0 animations:^{ parentView.frame = CGRectMake(0, 0, 160, 240); }]; 

theo kết quả của hoạt hình này tôi sẽ muốn văn bản của UILabel hoạt ảnh cùng với chế độ xem của phụ huynh nimation, do đó, trực quan bạn sẽ thấy văn bản di chuyển từ đang được tập trung tại (160, 240) đến (80, 120). Tuy nhiên, thay vì làm động nó xuất hiện khung của subview đang được thiết lập ngay lập tức giá trị nó phải có ở cuối của hình ảnh động, vì vậy bạn thấy vị trí của văn bản ngay lập tức nhảy khi hình ảnh động bắt đầu.

Có cách nào để xem các bản phụ đề tự động hóa như một phần của hoạt ảnh không?

Trả lời

20

Tôi không hoàn toàn quan tâm đến những gì đang diễn ra, nhưng tôi nghĩ vấn đề cốt lõi là UIKit không muốn phải hiển thị lại văn bản trên mọi khung hình của hoạt ảnh, vì vậy nội dung của một nhãn UILabel không thể hoạt hình. Theo mặc định, thuộc tính contentMode của UILabel là UIViewContentModeRedraw, có nghĩa là nó sẽ vẽ lại UILabel ở kích thước đích ngay sau khi thuộc tính được thiết lập.

Nếu bạn thay đổi contentMode thành UIViewContentModeCenter, nội dung sẽ không vẽ lại và sẽ vẫn được căn giữa trong UILabel.

childLabel.contentMode = UIViewContentModeCenter; 
+1

Đó là thông tin tuyệt vời. UIViewContentModeCenter hoạt động cho những gì tôi thực sự cần - để văn bản ở giữa trong khi khung của chế độ xem của phụ huynh bị thu hẹp hoặc tăng. Cảm ơn. –

+0

Đủ lớn !! Cảm ơn! – Kjuly

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