Tôi có chế độ xem cuộn trong ứng dụng của mình, được khởi tạo qua bảng phân cảnh và tôi đang cố gắng thay đổi khung. Mọi thứ dường như hoạt động, nhưng nếu kích thước khung hình và nội dung được truy cập chỉ trong một thời gian ngắn sau khi chúng được thiết lập, nhưng sau khi phương thức của tôi trả về, chúng khác nhau! Đây là mã:UIScrollView thay đổi khung hình và kích thước nội dung một cách bí ẩn
CGFloat inputHeight = inputView.frame.size.height;
originalContentHeight = self.scrollableContentView.frame.size.height;
NSLog(@"%f", self.scrollableContentView.frame.size.height-inputHeight);
[self.scrollableContentView setFrame:CGRectMake(self.scrollableContentView.frame.origin.x, self.scrollableContentView.frame.origin.y, self.scrollableContentView.frame.size.width, self.scrollableContentView.frame.size.height-inputHeight)];
NSLog(@"%f", self.scrollableContentView.frame.size.height);
NSLog(@"%@", self.scrollableContentView);
Sản lượng của các bản ghi này đều như mong đợi, đó là:
<UIScrollView: 0x808de00; frame = (0 0; 320 81); ... >
Tuy nhiên, nếu tôi đặt một breakpoint trong phương pháp khác, vào thời điểm đó được gọi là, đăng các scrollview thấy điều này:
<UIScrollView: 0x808de00; frame = (0 0; 320 416); ... >
Bên cạnh đó, những thay đổi kích thước nội dung như vậy:
(width=320, height=416)
để
(width=320, height=504)
Cả hai giá trị dường như được quay trở lại tự động đến các giá trị mà họ có khi xem là lần đầu tiên đặt ra. Tôi đã đặt breakpoint trong getter và setter của khung nhìn cuộn của tôi, và không thể tìm thấy bất kỳ truy cập bất ngờ, vì vậy tôi đã kết luận rằng sự thay đổi phải đến nội bộ. Đây có phải là một kết luận chính đáng? Điều gì có thể xảy ra?
Bạn có thể đặt lò xo tự động đặt thành độ cao có thể điều chỉnh không? – Jamie
Tôi sẽ tìm thấy ở đâu? – Jumhyn
Điều này là do bố cục tự động. Hoặc tắt tính năng đó hoặc thay đổi kích thước của chế độ xem cuộn bằng cách điều chỉnh các ràng buộc thay vì đặt khung. – rdelmar