繁体   English   中英

如何修改UIControl框架

[英]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组件并设置自定义类正确的方法。 但是,我相信您的滑块发生的错误是由于HRBrightnessSliderUIControl的子类,因此您不能将UISlider拖到视图中。 根据此SO ,您需要拖动另一个UIView

如果你真的想编写自己的滑块,您可以将使用UISlider由符合HRBrightnessSlider协议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM