2009-10-20 37 views
35

Tôi đã gặp khó khăn trong việc tìm kiếm các ví dụ tốt về UIScrollView. Ngay cả UIScrollView Suite của Apple, tôi cũng thấy một chút thiếu sót.Tìm hiểu các khái niệm cơ bản về UIScrollView

Tôi đang tìm một hướng dẫn hoặc tập mẫu cho tôi biết cách tạo thứ gì đó tương tự như cuộn tab Safari của iPhone, khi bạn thu nhỏ từ một cửa sổ trình duyệt và có thể vuốt cho người khác.

Nhưng tôi đang gặp khó khăn khi chỉ nhận được bất kỳ chế độ xem cũ nào hiển thị trong chế độ xem cuộn. Tôi có chế độ xem được thiết lập với một hình ảnh trong đó, nhưng khi tôi thêm nó vào chế độ xem cuộn, tôi chỉ nhận được một hình chữ nhật màu đen, bất kể tôi đưa gì vào chế độ xem tôi thêm vào.

Bất kỳ liên kết hoặc đoạn mã nào đều tuyệt vời!

+0

bạn có thể giải thích những gì bạn có ý nghĩa bằng cách di chuyển tab Safari của iPhone? Đó có phải là sau khi bạn nhấp vào nút trang dưới cùng bên phải và sau đó bạn nhận được một UIPageControl mà hãy để bạn flick đến các cửa sổ trình duyệt khác? – mahboudz

Trả lời

46

Đây là một scroll view guide from Apple

Các bước cơ bản là:

  1. Tạo và xem nội dung UIScrollView bạn muốn đặt bên trong (trong trường hợp của bạn một UIImageView).
  2. Đặt nội dung ở chế độ xem con của chế độ xem cuộn.
  3. Đặt kích thước nội dung của chế độ xem cuộn xuống kích thước khung hình của chế độ xem nội dung. Đây là một bước rất quan trọng mà mọi người thường bỏ qua.
  4. Đặt chế độ xem cuộn trong cửa sổ ở đâu đó.

Đối với hành vi nhắn tin, hãy xem thuộc tính của UIScrollView là pagingEnabled. Nếu bạn cần cuộn ít hơn toàn bộ trang, bạn cần phải chơi các thủ thuật với clipsToBounds, sắp xếp ngược lại những gì đang diễn ra trong this StackOverflow question.

+0

EDIT: tìm thấy câu hỏi của tôi ở đây: http://stackoverflow.com/questions/1135163/how-do-i-use-uiscrollview-in-interface-builder - và thật đáng buồn là câu trả lời là "không, Apple quên bật nó" . BÌNH LUẬN GỐC: Có cách nào để thực hiện BƯỚC 3 ở trên từ bên trong Interface Builder không? Tôi đã làm nó trong mã, không thể tìm thấy một cách trong IB. Đó là lẻ - về cơ bản, có vẻ như Apple đang buộc bạn phải viết mã nếu bạn đã bao giờ muốn một UIScrollView để thực sự làm việc? – Adam

+3

Lưu ý nhanh: liên kết đến ví dụ không còn hợp lệ và hiện đang chuyển hướng đến các trang web spam khác nhau. –

+2

Bước 3: Để đặt kích thước nội dung, hãy thêm '[self.scrollView setContentSize: CGSizeMake (chiều rộng contentView, chiều cao contentView)];' vào phương thức 'viewDidAppear'. – jithin

16
UIScrollView *scrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

NSInteger viewcount= 4; 
for (int i = 0; i <viewcount; i++) 
{ 
CGFloat y = i * self.view.frame.size.height; 
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, y,self.view.frame.size.width, self .view.frame.size.height)];  
view.backgroundColor = [UIColor greenColor]; 
[scrollview addSubview:view]; 
[view release]; 
} 
scrollview.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height *viewcount); 

Để biết thêm thông tin Create UIScrollView programmatically

+0

"CGFloat y = i * self.view.frame.size.height;" cho 0 cho tất cả các lần lặp. –

Các vấn đề liên quan