[英]How to modify UIControl framework
我正在使用HRColorPicker这个框架。 我想在Storyboard的Autolayout中对其子视图进行布局,但无法弄清楚框架的工作方式。
它的主类是UIControl
的子类,名为HRColorPickerView
具有3个属性
@property (nonatomic, strong) IBOutlet UIView <HRColorInfoView> *colorInfoView;
@property (nonatomic, strong) IBOutlet UIControl <HRColorMapView> *colorMapView;
@property (nonatomic, strong) IBOutlet UIControl <HRBrightnessSlider> *brightnessSlider;
这些每个都有自己的类,并且每个都是选择器中的3个子视图之一。
我想创建一个带有此颜色选择器的UIViewController
。 如果我只是制作一个普通的UIView
并将其添加到Storyboard中的UIViewController
并将其类型设置为HRColorPickerView
,那么我将获得默认的颜色选择器,并且效果很好。 该框架的作者说,这些属性是可自定义的,甚至在Storyboard中都有它们的快照。 但是我不知道如何将它们放入我的情节提要中,以便我可以自定义它们。
但是,我想使用Storyboard通过Autolayout布置子视图/属性。 基本上,我想在VC中创建自己的视图,将它们设置为3种类型之一,并在Storyboard中进行布局。 当我将视图的类型连接到.h文件时,我尝试将视图的类型设置为3种,但是当我运行时,出现崩溃,我认为我做的不正确。 我创建了2个UIView
和1个UISlider
,每个都是3个属性之一。 UISlider
“无法识别的选择器”崩溃,这不应该发生,因为支持视图的类应该能够处理它。
这是我的.h文件,在Storyboard中,* colorPickerView下面的3个属性是* colorPickerView的子视图。
@interface ColorPickerViewController : UIViewController
@property (strong, nonatomic) IBOutlet HRColorPickerView *colorPickerView;
@property (strong, nonatomic) IBOutlet HRColorMapView *colorMap;
@property (strong, nonatomic) IBOutlet HRColorInfoView *colorInfo;
@property (strong, nonatomic) IBOutlet HRBrightnessSlider *brightSlider;
@end
我不是作者,所以这些确实是我的猜测。 库协议有点混乱,因为协议与实际的类共享相同的名称。
根据屏幕截图,添加UI组件并设置自定义类是正确的方法。 但是,我相信您的滑块发生的错误是由于HRBrightnessSlider
是UIControl
的子类,因此您不能将UISlider
拖到视图中。 根据此SO ,您需要拖动另一个UIView
。
如果你真的想编写自己的滑块,您可以将使用UISlider
由符合HRBrightnessSlider
协议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.