[英]UISlider Constraints Programmatically: “Constraint items must each be an instance of UIView or subclass”
[英]Create instance of UIView subclass programmatically
我創建了UIView的子類,該子類僅具有drawRect被覆蓋。 為了簡單起見,我不是在Interface Builder中創建UIView來表示將是我的子類,而是希望在UIViewController代碼中創建它的一個實例。
我嘗試了以下方法:
canvasView = CanvasView(frame: view.bounds)
canvasView.dataSource = self
以及:
canvasView = UIView(frame: view.bounds) as! CanvasView
canvasView.dataSource = self
但是對於他們兩個我都收到錯誤。
類型'UIView'的值沒有成員'dataSource'
解決這個問題的正確方法是什么? 我需要在IB中創建UIView嗎? 它嵌入在UIScrollView中,我也正在以編程方式創建它並且運行良好,因此,如果可能的話,我真的希望不必這樣做。
除了UIView沒有數據源之外,您所做的一切都很好。
有關您想要實現的目標的更多信息將對您有所幫助。
由於我沒有您的CanvasView的定義,因此很難知道出了什么問題。 下面是我在操場上放在一起的東西,向您展示了一種為類設置數據源的方法。
import UIKit
protocol DataSourceProtocol {
var data: Any { get set }
}
class DataSource: DataSourceProtocol {
var data: Any
init(data: Any) {
self.data = data
}
}
class ViewWithDataSource: UIView {
var dataSource: DataSourceProtocol?
}
let dataSource = DataSource(data: "Some Data")
let myView = ViewWithDataSource(frame: CGRectZero)
myView.dataSource = dataSource
編輯:編輯出一些不正確的陳述/假設
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.