我试图以编程方式(不使用情节提要)将自定义UIViewController
类(UIPickerView
)添加到我的主类中,但是出现以下错误消息...ViewController
Swift
“无法将类型'HabitViewViewController'的值转换为预期的参数类型'UIView'
自定义UIPicker类:
导入UIKit HabitViewController类:UIViewController,UIPickerViewDataSource,UIPickerViewDelegate { @IBOutlet弱var myPicker:UIPickerView! @IBOutlet弱var myLabel:UILabel! 让pickerData = [“” Mozzarella“,” Gorgonzola“,” Provolone“,” Brie“,” Maytag Blue“,” Sharp Cheddar“,” Monterrey Jack“,” Stilton“,” Gouda“,”山羊奶酪“,” Asiago“ “] 覆盖func viewDidLoad(){ super.viewDidLoad() myPicker.delegate =自我 myPicker.dataSource =自我 } // MARK:-代表和数据源 // MARK:数据源 func numberOfComponents(在pickerView中:UIPickerView)-> Int { 返回1 } func pickerView(_ pickerView:UIPickerView,numberOfRowsInComponent组件:Int)-> Int { 返回pickerData.count } // MARK:代表 func pickerView(_ pickerView:UIPickerView,titleForRow行:Int,forComponent组件:Int)->字符串?{ 返回pickerData [行] } func pickerView(_ pickerView:UIPickerView,didSelectRow行:Int,inComponent组件:Int){ myLabel.text = pickerData [行] } func pickerView(_ pickerView:UIPickerView,attributedTitleForRow行:Int,forComponent组件:Int)-> NSAttributedString?{ 让titleData = pickerData [row] 让myTitle = NSAttributedString(字符串:titleData,属性:[NSFontAttributeName:UIFont(名称:“乔治亚州”,大小:26.0)!, NSForegroundColorAttributeName:UIColor.blue]) 返回myTitle } func pickerView(_ pickerView:UIPickerView,viewForRow行:Int,forComponent组件:Int,重用视图:UIView?)-> UIView { var pickerLabel =查看为!UILabel! if view == nil {//如果还没有标签 pickerLabel = UILabel() //为标签的背景着色 设色相= CGFloat(行)/ CGFloat(pickerData.count) pickerLabel?.backgroundColor = UIColor(色相:色相,饱和度:1.0,亮度:1.0,阿尔法:1.0) } 让titleData = pickerData [row] 让myTitle = NSAttributedString(字符串:titleData,属性:[NSFontAttributeName:UIFont(名称:“乔治亚州”,大小:26.0)!, NSForegroundColorAttributeName:UIColor.black]) pickerLabel!.attributedText = myTitle pickerLabel!.textAlignment = .center 返回pickerLabel! } }
主UIView
导入UIKit //活动月视图类(类型BaseCell-清洁器) 类PlantCell:BaseCell { //习惯的UIpicker 让habitPicker:HabitViewController = { 让习惯= HabitViewController() 回归习惯 }() //由于使用baseCell超类而被覆盖 覆盖func setupViews(){ //添加子视图 addSubview(habitPicker) //水平约束 addConstraintsWithFormat(format:“ H:|-[v0]-|”,views:habitPicker) //垂直约束 addConstraintsWithFormat(format:“ V:| -250- [v0(20)]”,视图:habitPicker) } }
基本单元
导入UIKit //初始化所有基本UICollectionView单元的超类 类BaseCell:UICollectionViewCell { 覆盖init(frame:CGRect){ //调用dequeueReusableCell时,如果需要新的单元格,则调用此init方法 super.init(frame:框架) setupViews() } func setupViews(){ } 需要初始化吗?(编码器aDecoder:NSCoder){ fatalError(“ init(coder :)尚未实现”) } }
nynohu.. 5
addSubview(habitPicker)
期望的参数是UIView,因此您可以通过进行简单的修复addSubview(habitPicker.view)
。并记住要调整habitPicker.view
合适的框架尺寸。
addSubview(habitPicker)
期望的参数是UIView,因此您可以通过进行简单的修复addSubview(habitPicker.view)
。并记住要调整habitPicker.view
合适的框架尺寸。