2009-06-22 31 views
13

Cho phép nói UISegmentedControl của tôi có 8 phân đoạn được đánh số. Tôi muốn người dùng có thể bật 2, 3 hoặc nhiều người trong số họ cùng một lúc. Toggling chúng. Về cơ bản giống như một bit trong một byte. Điều này có thể không? Tôi tin rằng đó là trên Mac OS X thường xuyên nhưng tôi dường như không thể tìm thấy một cách để làm điều đó trong SDK iPhone.Làm cách nào để có thể bật nhiều phân đoạn của UISegmentedControl?

Nếu tôi có để mô phỏng này bằng cách đặt các nút vào một cái nhìn, có cách nào để làm như sau:

  1. Vòng các góc của khung nhìn sao cho nó trông giống như "thanh" phong cách UISegmentedControl?
  2. Sử dụng hình nền có sẵn mà kiểu "thanh" có trên các nút?
  3. Đặt các nút cho bóng như toàn bộ kiểu "bar"? (không phải văn bản)

Trả lời

8

Không thể sử dụng UIKit này. Tôi khuyên bạn nên tạo một điều khiển tùy chỉnh hoặc một mảng các điều khiển UISwitch, thể hiện từng tùy chọn trong UISegmentedControl của bạn.

2

Tôi nghĩ rằng cách đơn giản nhất là tạo bộ kiểm soát phân đoạn của riêng bạn bằng UIButton.

Marco

+3

Một cách để thực hiện việc này, mà tôi đã thực hiện trong các ứng dụng giao hàng, là sử dụng UILabel có cạnh tròn và đặt UIButtons hình chữ nhật bên trong. Bằng cách này bạn có thể nhận được các cạnh tròn cho điều khiển kết hợp. Thưởng thức. –

1

Dường như có cách để thực hiện điều này trong XCode ngay bây giờ. Trong Thanh tra thuộc tính, có một phần với Phân đoạn, Tiêu đề, Hình ảnh, Hành vi. Các tùy chọn hành vi là "Đã bật" và "Đã chọn". Bạn có thể chọn "Đã chọn" cho nhiều phân đoạn.

+9

Tôi không nghĩ rằng nó hoạt động. Trong Xcode khi tôi chọn "Đã chọn" cho một phân đoạn, tất cả các phân đoạn khác đều không được chọn. Hơn nữa các phương thức cho UISegmentedControl bao gồm setEnabled: forSegmentAtIndex nhưng không setSelected: forSegmentAtIndex (sẽ rất tiện dụng). Tôi đang cố gắng làm tương tự như OP và nó xuất hiện tôi cần phải tạo ra một điều khiển tùy chỉnh. Loại mỉa mai vì các nút trợ giúp ở đầu Xcode chính nó là chính xác những gì tôi đang chụp (ứng dụng Mac mặc dù). –

0

Tôi khuyên bạn nên thử https://github.com/tayhalla/THSegmentedControl
nó là một lớp con thực tế của UISegmentedControl để nó vừa khít với Trình tạo giao diện và mọi thứ.

+0

Đây là một phân lớp của 'UIControl' không phải là' UISegmentedControl ' –

6

Đây là điều khiển tùy chỉnh tốt nhất mà tôi đã tìm thấy cho phép nhiều đoạn được chọn đồng thời:

https://github.com/yonat/MultiSelectSegmentedControl

một Đây là một lớp con của UISegmentedControl, đó là thuận tiện. Tôi đã chia hai nó ở đây:

https://github.com/stewartmacdonald/MultiSelectSegmentedControl

và thêm một số ví dụ mã để các ReadMe và thêm một phương pháp cho phép bạn để có được một NSArray trong những danh hiệu của tất cả các phân đoạn được chọn.

+0

' MultiSelectSegmentedControl' rất đẹp. Nó mở rộng 'UISegmentedControl' để tất cả các phương thức của nó có sẵn. –

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