Theo doc chính thức về UIView về contentMode
tài sản:Loại nội dung nào UIViewContentMode mode đề cập đến?
The content mode specifies how the cached bitmap of the view’s layer is adjusted when the view’s bounds change
gì định nghĩa nội dung trong định nghĩa này? Đó có phải là chế độ xem phụ hay khi chúng tôi xác định màu nền cho chế độ xem chẳng hạn.
tôi đoán đầu tiên là nó nên áp dụng ít nhất là trong subviews trong một cái nhìn, nhưng ví dụ đoạn mã sau đây sẽ không cung cấp cho tôi những kết quả mong đợi khi chơi với UIViewContentModeCenter
tag:
UIView* redView = [[UIView alloc] initWithFrame:CGRectMake(80, 80, 150, 200)];
redView.contentMode = UIViewContentModeCenter;
redView.backgroundColor = [UIColor redColor];
UIView* greenView = [[UIView alloc] initWithFrame:redView.bounds];
greenView.backgroundColor = [UIColor greenColor];
[redView addSubview:greenView];
redView.frame = CGRectInset(redView.frame, -5, -5);
[self.view addSubview:redView];
Tôi vừa thiết lập một redView sẽ bao gồm một greenView. Tôi cũng đã thiết lập chế độ nội dung của chế độ xem lại thành UIViewContentModeCenter
- tại sao trong mã tôi viết greenView không được căn giữa khi tôi thay đổi khung của cha mẹ? không phải là những gì UIViewContentModeCenter
là nghĩa vụ phải làm gì?
Cảm ơn bạn đã làm rõ!
Ps: Bạn có thể dễ dàng kiểm tra mã trên trong loadView
của dự án mẫu bộ điều khiển chế độ xem đơn giản.
Chắc chắn bằng cách điều chỉnh khung bạn sẽ được vẽ lại xem, trong đó có quan điểm phụ mà được thiết lập để giới hạn khung hình đang được thay đổi? Do đó nó sẽ không ở lại trung tâm như các giới hạn có liên quan đến khung? Bằng tiếng Anh đơn giản, sử dụng các giới hạn vì khung hình của bạn luôn là 0,0 và chiều rộng và chiều cao phù hợp –