Tôi đã sử dụng UIScrollView
trước đây và đang sử dụng nó ngay bây giờ và không bao giờ gặp sự cố. Bây giờ tôi thêm nó vào một ứng dụng cũ, và trong khi nó hoạt động như mong đợi (tôi có thể nhìn vào nội dung, di chuyển xung quanh bằng ngón tay của tôi, tất cả các giới hạn và kích cỡ được thiết lập đúng để không có khoảng trống trong nội dung, v.v. .), Tôi chỉ không thể nhận được scrollToRectVisible
để hoạt động. Tôi thậm chí còn đơn giản hóa cuộc gọi để nó chỉ di chuyển đến 0,0 vị trí:UIScrollView hoạt động như mong đợi nhưng scrollRectToVisible: không có gì
[scrollView scrollRectToVisible:CGRectMake(0, 0, 10, 10) animated:YES];
hoặc di chuyển nó đến 0200:
[scrollView scrollRectToVisible:CGRectMake(0, 200, 10, 10) animated:YES];
Tôi thậm chí làm một ứng dụng nhanh chóng để kiểm tra điều này và tôi có thể nhận được scrollRectToVisible
để làm việc ở đó như tôi mong đợi. Nhưng trong ứng dụng cũ của tôi, tôi dường như không thể làm điều đó.
Tôi có thể cuộn scrollView với setContentOffset:
, nhưng đó không phải là những gì tôi muốn.
ScrollView này và nội dung của nó được xác định trong nib của IB và được sử dụng với IBOutlet. Mã duy nhất tôi đang sử dụng trong ứng dụng của mình để xử lý scrollView là
[scrollView setContentSize:CGSizeMake(scrollView.contentSize.width, imageView.frame.size.height)];
(Tôi chỉ quan tâm đến cuộn dọc không nằm ngang).
Có ai gặp sự cố như thế này không?
Tôi đã so sánh các thuộc tính scrollView trong cả hai ứng dụng và chúng giống nhau.
PHỤ LỤC:
My scrollViews khung là: 0,000000 0,000000 480,000000 179,000000
My scrollViews contentSize là: 0,000000 324,000000
Nó vẫn hoạt động như rect Tôi muốn di chuyển đến là đã có thể nhìn thấy và không di chuyển là cần thiết. Không chắc chắn nếu đó là những gì đang xảy ra. Đây chỉ là điều darnest. Có vẻ như là một điều dễ dàng như vậy để giải quyết ...
PHỤ LỤC# 2:
Đây là cách tôi đang làm cho làm mà không scrollRectToVisible
:
CGPoint point = myRect.origin;
if (![clefScrollView pointInside:point withEvent:nil]) {
point.x = 0;
if (point.y > clefScrollView.contentSize.height - clefScrollView.bounds.size.height)
point.y = clefScrollView.contentSize.height - clefScrollView.bounds.size.height;
[clefScrollView setContentOffset:point animated: YES];
}
Mọi thứ khác về scrollview này hoạt động như mong đợi, nhưng scrollRectToVisible
. TẠI SAO?!? Có dự đoán hoang dã nào không?
Cảm ơn! Tôi đã nhận bit bởi điều này quá (tôi đã thiết lập chiều cao nhưng không chiều rộng). –
Điều này KHÔNG hoàn toàn chính xác - c.f. Câu trả lời của Orion dưới đây (tôi có chiều rộng/chiều cao khác không, nó không phải là '0' gây ra vấn đề ...) – Adam
Tôi đã làm điều này theo cách tương tự nhưng vẫn scrollRectToVisible không hoạt động. Nó hoạt động trong mô phỏng nhưng không hoạt động trên thiết bị. Hãy giúp tôi. –