Tôi có một thiết lập ngang Thiết lập UIScrollview (nghĩa là không phải cuộn lên và xuống mà chỉ cuộn xuống bên trái) và khi khởi chạy ứng dụng, tôi muốn cuộn này cuộn sang trái, sau đó phải "thể hiện" khả năng cuộn của nó - và cuối cùng dừng lại, cho phép người dùng sau đó tiếp quản và điều khiển cuộn theo cách thủ công bằng ngón tay của họ. Mọi thứ đều hoạt động - ngoại trừ bản trình diễn cuộn bên trái phải tải này.Làm thế nào để bạn lập trình buộc cuộn bằng UIScrollView?
tôi không sử dụng giao diện Builder cho bất kỳ này, tôi đang làm tất cả mọi thứ với mã:
//(this is in viewDidLoad:)
// Create the scrollView:
UIScrollView *photosScroll = [[UIScrollView alloc] initWithFrame: CGRectMake(0, 0, 320, 200)];
[photosScroll setContentSize: CGSizeMake(1240, 200)];
// Add it as a subview to the mainView
[mainView addSubview:photosScroll];
// Set the photoScroll's delegate:
photosScroll.delegate = self;
// Create a frame to which to scroll:
CGRect frame = CGRectMake(10, 10, 80, 150);
// Scroll to that frame:
[photosScroll scrollRectToVisible: frame animated:YES];
Vì vậy, tải scrollview thành công và tôi có thể di chuyển nó sang trái và phải với ngón tay của tôi - nhưng nó không làm điều này "tự động di chuyển" như tôi đã hy vọng nó sẽ.
- Tôi đã thử gọi scrollRectToVisible trước và sau khi thêm scrollView làm chế độ xem phụ - không hoạt động.
- Suy nghĩ có lẽ điều này nên xảy ra trong loadView chứ không phải trong viewDidLoad? Nhưng nếu vậy, làm thế nào?
Bất kỳ ý tưởng nào?
bạn có ý gì đó như thế này không? CGRect frame = CGRectMake (800, 0, 800, 150); [photosScroll scrollRectToVisible: frame animated: YES]; frame = CGRectMake (0, 0, 800, 150); [photosScroll scrollRectToVisible: frame animated: YES]; nguyên nhân không hoạt động ... – sirab333
Đối với # 1, có, nhưng bạn không cần phải làm cho 'khung' bạn cuộn đến kích thước của toàn bộ khung nhìn. Bạn có thể làm 'CGRectMake (800, 0, 1, 1)' nếu bạn thích, và sau đó 'CGRectMake (0, 0, 1, 1)'. Để di chuyển vùng từ 800 pixel đến 1600 pixel vào khung nhìn, bạn có thể cuộn đến '(1599, 0, 1, 1)', và sau đó để cuộn khu vực từ 0 đến 800 trở lại dạng xem, bạn có thể cuộn đến '(0 , 0, 1, 1) '. – darvids0n
oh ok hãy để tôi thử điều này trong viewDidAppear ... – sirab333