8

Tôi đang tạo một biểu mẫu nhập dữ liệu trong ứng dụng iPhone của mình và có nhiều trường dữ liệu hơn số liệu sẽ phù hợp trên màn hình. Tôi cho rằng tôi nên đặt chúng vào UIScrollView để người dùng có thể cuộn qua biểu mẫu. Cách tốt nhất để xây dựng điều này trong Interface Builder là gì? Tôi biết rằng tôi có thể làm điều đó theo lập trình, nhưng tôi muốn làm điều đó trong Interface Builder nếu tôi có thể. Vấn đề là, làm thế nào tôi có thể đặt ra UILabels, UITextFields, vv nếu chúng nằm ngoài màn hình iPhone chính - trong phần màn hình mà UIScrollView trở nên hữu ích?Cách thiết lập UIScrollView trong Trình tạo giao diện với các phần tử giao diện người dùng bên ngoài chế độ xem chính của iPhone?

Trả lời

0

Nhấp đúp để tự mở UIScrollView trong IB và tăng kích thước cho kích thước bạn cần hoặc lớn hơn (bạn luôn có thể thu nhỏ khi chạy). Sau đó, chỉ cần thêm các yếu tố.

CHỈNH SỬA: Không hoạt động - hãy xem here thay thế.

0

Tôi cũng gặp vấn đề tương tự. Những gì tôi đã kết thúc làm là đặt một UIView bên trong của nó và thiết lập chiều cao cho bất cứ điều gì tôi muốn. Sau đó, tôi đặt tất cả các yếu tố giao diện người dùng của mình vào bên trong nó. Điều này cho phép bạn kéo chế độ xem trong lên và xuống.

1

Thiết lập "Insets nội dung" của "Kích thước chế độ xem cuộn" trên "Trình kiểm tra kích thước": Bottom = YourFrameHeight - ScreenHeight. Nó sẽ cho phép bạn di chuyển trong phạm vi của top-to-top, bottom-to-bottom của UIScrollView bạn

5

Đây thực sự là đơn giản:

  1. Tạo một lớp view controller mới ví dụ MyScrollViewController

  2. Tạo một xib mới với một UIScrollView như quan điểm trên cùng, và thiết lập các lớp của Chủ đầu tư của File để MyScrollView khiển

  3. Đặt xem thuộc tính của Chủ đầu tư tập để xem di chuyển

  4. Kéo phần cuối của chế độ xem cuộn xuống để tạo kích thước mong muốn.

  5. Chức vụ khác nhau của bạn yếu tố giao diện người dùng khác như tiểu điểm của xem di chuyển

  6. Tạo và kết nối một IBOutlet trong MyScrollViewController.h cho xem di chuyển, ví dụ

    @property (retain, nonatomic) IBOutlet UIScrollView *scrollView; 
    
  7. Trong phương pháp viewDidLoad MyScrollViewController của, thêm dòng mã sau đây:

    self.scrollView.contentSize = self.scrollView.frame.size; 
    

Th-th-th-đó là tất cả các folks!

+0

Điều này làm việc cho tôi ở chế độ dọc, nhưng không phải khi tôi xoay nó thành ngang. Tôi đã sử dụng dòng này thay vì self.scrollView.contentSize = CGSizeMake (self.view.bounds.size.width, 600.0f); Trường hợp chiều cao lớn hơn một chút so với nội dung trong scrollview. – JScarry

7

Cách giải quyết tốt nhất mà tôi tìm thấy cho vấn đề này (mà tôi xem xét lúng túng cho Interface Builder) là thế này:

  1. nơi một "container" UIView bên trong UIScrollView, thiết lập kích thước của UIView chứa những gì là cần thiết (ví dụ: 320 x 1200) với thanh tra và thêm nội dung của bạn bên trong chế độ xem vùng chứa đó. (các nút, trường văn bản, v.v.).
  2. đặt contentSize cho UIScrollView, bằng mã, giống với kích thước của vùng chứa UIView của bạn.ví dụ: scrollView.contentSize = containerView.frame.size;)
  3. Để sửa đổi nội dung ngoài giới hạn của khung nhìn trong Trình tạo giao diện, bạn phải kéo chế độ xem vùng chứa bên ngoài chế độ xem cuộn mỗi lần, thực hiện sửa đổi của bạn , sau đó kéo khung nhìn vùng chứa của bạn trở lại bên trong UIScrollView và xây dựng.
+1

trả lời câu hỏi này cho tôi. Bạn không thể xem trực tiếp các phần phụ của mình bên dưới UIScrollView. Bạn cần phải có một UIView bên trong UIScrollView như một container cho tất cả các Subviews của bạn (tôi biết nó là một chút ngu ngốc). – jimbob

+0

Cách tiếp cận này đã cứu tôi rất nhiều rắc rối. Bài học chính -> nếu bạn đang có kế hoạch sử dụng giao diện xib để thiết kế nội dung của scrollview của bạn, tốt hơn để làm điều đó trong một uiview riêng biệt sau đó lập trình thêm nó vào scrollview của bạn như một toàn bộ và sau đó thiết lập nội dung của bạn sau. – Teffi

0

Điều gì đã làm việc cho tôi trong xCode5 (không có bảng phân cảnh, sử dụng autolayout) đang sử dụng câu trả lời 7 bước phía trên cùng với 'Th-th-th-đó là tất cả mọi người!' và thêm hai bước.

8) Kéo UIView mới vào trình tạo giao diện. Không vào chế độ xem Cuộn. Chỉ một mình thôi. Đặt tất cả các điều khiển của bạn/xem vào đó và làm cho nó lớn như bạn muốn. Tôi đã kết nối chế độ xem này dưới dạng contentView.

@property (yếu, nonatomic) IBOutlet UIView * contentView;

9) Sau đó, trong - (void) viewDidLoad

[self.mainScrollView addSubview: self.contentView]; [self.mainScrollView setContentSize: CGSizeMake (self.contentView.frame.size.width, self.contentView.frame.size.height)];

Chỉ cần nói điều đó làm cho nó hoạt động cho tôi.

0

Cuối cùng, có một giải pháp hợp lý cho tất cả điều này và đó là đặt Chế độ xem vùng chứa bên trong UIScrollView. Khi Trình xây dựng giao diện hiển thị UIViewController bên trong Chế độ xem vùng chứa riêng biệt, cuối cùng bạn có thể thấy nội dung UIScrollView của bạn sẽ trông như thế nào mà không cần qua các ngón tay và đứng trên đầu.

Bạn vẫn cần phải đặt theo chương trình kích thước nội dung của mình nhưng ít nhất bạn hiện có thể trực quan hóa những gì đang diễn ra.

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