2011-01-10 37 views
9

Tôi đang cố gắng tạo ra một loạt các nút hoạt động giống như float: còn lại trong CSS. Vì vậy, bất cứ khi nào chế độ xem thay đổi kích thước, về thay đổi hướng, ví dụ, các nút sẽ điều chỉnh sao cho chúng vừa với khung nhìn vùng chứa của chúng.float: bên trái trong mục tiêu-c

Ở chế độ ngang, UIScrollView này sẽ cuộn theo chiều ngang, ở chế độ dọc, nó sẽ cuộn theo chiều dọc.

Tôi đang cố gắng tạo một ScrollView tương tự như tab "Nổi bật" trong ứng dụng YouTube dành cho iPad. Cảnh có 4 cột, dọc: 3 cột, tab "Đăng ký", chân dung, cùng một chế độ xem có 2 cột.

alt text

+2

+1 cho câu hỏi được nêu ra và đưa ra. Tôi chỉ xin lỗi tôi không thể trả lời. – Abizern

+0

+1 từ tôi nữa :) – Moszi

Trả lời

2

tôi đã thực hiện một layout system để làm những việc như thế này. Có một dự án demo về cách sử dụng nó được kiểm tra vào kho lưu trữ đó. Tôi rất sẵn lòng trả lời bất kỳ câu hỏi nào về nó. Đây là trọng lượng nhẹ hơn nhiều so với AQGridView, vì vậy nếu bạn không cần thêm chức năng mà anh ấy đang cung cấp, tôi sẽ đề xuất phương pháp tiếp cận tương tự như tôi.

+0

Liên kết dường như không hoạt động nữa. – Myxtic

+0

Bạn vẫn có thể tìm thấy nó trên github của tôi, nhưng bạn chỉ nên sử dụng bố trí tự động Cocoa để làm điều này ngay bây giờ. –

1

bạn có thể muốn kiểm tra AQGridView, mà về cơ bản là một tái thực hiện NSCollectionView Cocoa của: https://github.com/AlanQuatermain/AQGridView

Nếu không, bạn có thể cần phải ghi đè layoutSubviews trong parentView bạn và sau đó sắp xếp lại các subviews (nút) cho phù hợp khi kích thước của parentView thay đổi.

Chúc mừng,

Johannes

0

Nếu bạn đã phải thực hiện điều này bằng tay (bằng cách ghi đè layoutSubviews), tôi nghĩ rằng các thuật toán sẽ là một cái gì đó như thế này:

  1. Bắt đầu với X = 0, Y = 0 (giả định tọa độ lật)
  2. Đối với mỗi nút:
    1. Nếu (X + nút chiều rộng)> chiều rộng container, đặt X = 0, tăng Y
    2. nút
    3. Nơi ở (X, Y)
    4. tăng X bằng nút của chiều rộng
Các vấn đề liên quan