2015-08-21 15 views
14

Tôi đã tạo chế độ xem tùy chỉnh (Chế độ xem số lượng) với nib tệp trong Swift. Tôi đã tạo một số IBOutlets & IBActions (đối với các nút, nhãn, v.v.) trong chế độ xem tùy chỉnh của tôi.Ẩn cửa hàng khỏi Trình kết nối Thanh tra cho Chế độ xem tùy chỉnh

Tôi cố gắng để sử dụng giao diện tùy chỉnh này (Số lượng View) bằng cách gán tên lớp đến một UIView trong kịch bản của tôi. Hiển thị cho tôi tất cả IBOutlets & IBActions trong Trình kiểm tra kết nối, như được hiển thị trong ảnh chụp màn hình này: screenshot.

Tôi chỉ muốn hiển thị chỉ delegate cho chế độ xem Tùy chỉnh.

có thể trả lời:

tôi nghĩ rằng tôi có thể sử dụng -viewWithTag để có được quan điểm thay vì Outlets.

Nhưng, tôi muốn biết liệu có thể có Cửa hàng hoặc nếu có cách nào tốt hơn để thực hiện việc này?

Các cách có thể khác (tối ưu) để xử lý tình huống này là gì?

+1

Bạn đã thêm thuộc tính IBOutlet cho thuộc tính và hành động của mình. Tại sao bạn không muốn Trình kết nối Thanh tra hiển thị? IBOutlet là công tắc của Thanh tra kết nối. –

+0

@HarrisonXi: Chế độ xem tùy chỉnh của tôi phức tạp đến nỗi tôi không muốn thiết kế nó thông qua mã hóa, vì vậy tôi đã tách riêng xib để thiết kế nó, nhưng để truy cập vào các thành phần UI khác tôi cần phải dùng 'IBOutlet's in lớp xem tùy chỉnh và tôi cũng không muốn sử dụng phương thức 'viewWithTag'. Tôi chỉ muốn biết nếu có cách nào khác. – Bhavin

+0

Không, không thể ẩn IBOutlets và IBAction Connections Inspector. Nếu bạn không muốn hiển thị trong Thanh tra kết nối, hãy xóa từ khóa IBOutlet khỏi thuộc tính. – Sonu

Trả lời

0

Tôi nghĩ theo cách của bạn là chính xác. Nhưng đôi khi Xcode không hoạt động chính xác. Phần sau làm cho IBOutlets và IBActions xuất hiện lại và hoạt động bình thường:

  1. Làm sạch dự án của bạn trong Xcode.

  2. Thoát hoàn toàn Xcode.

  3. Xóa tất cả nội dung của ~/Library/Developer/Xcode/DerivedData /.

  4. Khởi động lại MacOS chỉ trong trường hợp.

tôi hy vọng bạn sẽ giải quyết mà :)

2

Bạn cũng có thể xem xét các giải pháp sau đây: Bạn có thể lấy subviews của QuantityViews của bạn (xem tùy chỉnh) và bạn có thể xác định các quan điểm cụ thể bằng khung của nó gốc. Lưu ý: bạn nên biết khung xem phụ đề khung hình

1

Không thể ẩn IBOutlets khỏi bảng phân cảnh nếu bạn khai báo thành viên lớp là IB (IBOutlets hoặc IBActions).

IBOutlets hoặc IBActions chỉ là chỉ báo cho trình tạo giao diện để nó có thể hiển thị tên trên nó khi bạn cố kết buộc chúng thực sự gọi phương thức setValue: forKey: để đặt tham chiếu của khung nhìn thành thuộc tính IBOutlet.

Bây giờ nếu bạn cố gắng truy cập vào một subview từ lớp chủ sở hữu của tập tin mà không cần bất kỳ IBoutlets bạn cần phải có một con trỏ để trỏ nó, do đó, hoặc bạn có thể nhận được tài liệu tham khảo bằng cách sử dụng ObjectID được giao cho subview của giao diện người xây dựng hoặc bạn có thể sử dụng phương thức viewWithTag:.

ObjectID bạn cần tìm mọi lúc khi bạn thêm hoặc thay thế chế độ xem phụ từ chế độ xem, vì vậy cách tiếp cận tốt hơn và thuận tiện hơn là sử dụng thuộc tính thẻ của lớp UIView.

Vì vậy, kết luận của tôi cho vấn đề này là truy cập các chế độ xem bằng phương thức viewWithTag mà bạn đã đề cập trước đó.

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