Tôi có thể làm điều gì đó thực sự ngu ngốc, nhưng dường như tôi không thể sử dụng Trình tạo giao diện để kết nối các biến IBOutlet với chế độ xem tùy chỉnh, nhưng chỉ trong Swift.Swift, iboutlet và điều khiển tùy chỉnh
Tôi đã tạo một lớp có tên là MyView, mở rộng từ UIView. Trong bộ điều khiển của tôi, tôi đã có một biến MyView (được khai báo là @IBOutlet var newView: MyView). Tôi đi vào IB và kéo UIView vào cửa sổ và cho nó một lớp MyView.
Bất cứ khi nào tôi thực hiện tương tự trong Mục tiêu C, tôi có thể nhấp vào nút Xem bộ điều khiển ở đầu cửa sổ ứng dụng, chọn biến và kéo nó xuống điều khiển để liên kết hai. Khi tôi thử nó trong Swift, nó từ chối nhận ra rằng khung cảnh ở đó.
Nếu tôi thay đổi lớp biến trong bộ điều khiển thành UIView, nó hoạt động tốt. Nhưng không phải với chế độ xem tùy chỉnh của tôi.
Có ai khác gặp sự cố này không? Và nó là một tính năng, hay chỉ là sự ngu xuẩn của tôi?
Mã cho Controller
import UIKit
class ViewController: UIViewController {
@IBOutlet var newView:MyView
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Mã để xem
import UIKit
class MyView: UIView {
init(frame: CGRect) {
super.init(frame: frame)
// Initialization code
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect)
{
// Drawing code
}
*/
}
Tôi cũng gặp sự cố này, tôi nghĩ đây là lỗi và bạn nên báo cáo. –