我想要一个像UISlider这样的控件,但是用两个拇指代替一个拇指,这样你就可以指定一个范围而不是一个值。我读到了寻找同样事情的其他人,并提出了关于制作新控件的建议。
所以我决定在笔尖中设置我想要的东西,然后创建一个视图控制器来处理它的行为。它实际上非常好用这种方式接受2件事。
1)要将我的'自定义控件'加载到另一个笔尖,我需要通过这样的代码来完成...
MaxMinSliderViewController *feeMaxMinSlider =
[[MaxMinSliderViewController alloc] init];
[self.view addSubview:feeMaxMinSlider.view];
feeMaxMinSlider.view.frame = CGRectMake(20, 20, 280, 54);
...而不是像普通IB控件那样拖放到其他笔尖中。有没有一种简单的方法可以做到这一点?
2)在我关于这样做的所有阅读中,似乎我应该(以正确的方式做)子类UIView而不是UIViewController。我无法正确设置UIView并让它正常工作。
思想?
答案 0 :(得分:3)
而不是拖放 其他笔尖像正常的IB控件。是 有一种简单的方法可以做到 此?
都能跟得上!只有an incredibly hard way!
答案 1 :(得分:2)
假设您设法将您的类转换为自定义UIView而不是UIViewController,您可以在Interface Builder中轻松完成部分操作(取决于您的自定义控件具有哪种init方法)。
在Interface Builder中,将一个普通的旧UIView从“库”窗口拖放到视图中,并根据需要定位/调整它。
然后选择UIView,切换到检查器窗口的标识选项卡(带有小(i)图标的选项卡),并将其从UIView更改为自定义类的名称。这会导致在加载NIB时实例化自定义类的实例,而不是空的UIView。
然后您可以正常将视图连接到IBOutlet等。
这种方法的优点是能够在视觉上定位和调整控件等。但它只显示为矩形,并且您无法像以前那样以图形方式配置控件的其他属性。一个UIButton或类似的控件,Interface Builder对它有额外的支持。
我发现这种技术很棒,因为我不是那么多的视觉思考者,并且当我读到包含大量帧= CGRectMake(20,20)的代码段时,我觉得很难想象事情的样子,280,54)等。能够用鼠标直观地做到这一点对我来说要好得多。
答案 2 :(得分:0)
有一个 Interface Builder插件编程指南,但它只提到了Mac OS X,而不是iPhone。
此外,从XCode 3.2.1开始,只有一个用于创建Mac OS X IB插件的新项目模板; iPhone(Cocoa Touch)没有这样的项目模板。所以我的猜测是这不适用于iPhone。