Tôi đang viết chế độ xem tùy chỉnh cho React Native iOS.Làm cách nào để thông báo cho React Native rằng kích thước của chế độ xem tùy chỉnh đã thay đổi?
Về cơ bản, tôi phải làm cho văn bản càng lớn càng tốt (dựa trên chế độ xem của chế độ xem hiện tại). Tôi đã thực hiện nó bằng cách ghi đè reactSetFrame
và thay đổi khung. Vấn đề duy nhất là vị trí của các điểm là sai, đây là một ảnh chụp màn hình:
Dường như "quản lý bố trí" của phản ứng tự nhiên nghĩ rằng những quan điểm có chiều cao 0.
đây mã:
- (void)reactSetFrame:(CGRect)frame {
[super reactSetFrame:frame];
NSLog(@"react set frame %@", NSStringFromCGRect(frame));
[self fitText:self.text];
}
- (void)fitText:(NSString *)text {
// ... get the correct font size and expected size
[self setFont:font];
CGRect newFrame = self.frame;
newFrame.size.height = expectedLabelSize.height;
NSLog(@"new frame is %@", NSStringFromCGRect(newFrame));
self.frame = newFrame;
}
về cơ bản khi khung thay đổi tôi đang cập nhật khung với kích thước chính xác dựa trên văn bản đã được chuyển.
Các bản ghi đầu ra là thế này:
2017-06-25 16:43:16.434 ABC[44836:6551225] react set frame {{0, 0}, {375, 0}}
2017-06-25 16:43:16.435 ABC[44836:6551225] new frame is {{0, 0}, {375, 69.197000000000017}}
2017-06-25 16:43:16.435 ABC[44836:6551225] react set frame {{0, 0}, {375, 0}}
2017-06-25 16:43:16.436 ABC[44836:6551225] new frame is {{0, 0}, {375, 85.996999999999986}}
Tôi đã thử gọi reactSetFrame
với khung mới một lần nữa nhưng nó không được làm việc. Có cách nào để nói với React Native rằng kích thước của một khung nhìn đã thay đổi không?
bạn muốn gửi dữ liệu từ nguồn gốc javascript? – Codesingh
@codesingh không thực sự, tôi cần phải để cho "quản lý bố trí" biết kích thước thực tế của xem bằng cách nào đó :) – patrick