使用Xcode 4.3.3,我无法弄清楚如何将自定义UIView类中的插座与Interface Builder中创建的对象连接起来。Interface Builder将不允许连接到自定义UIView类?
在一个ViewController中,我有各种各样的按钮,滑块等,我试图分组到视图。所以,在IB的ViewController中,我添加了3个视图。在任何给定时间只有1个视图可见。
我派生了自定义的UIView类来处理这3个视图中的每一个。我的视图控制器实例化每个类。我选择了IB中的视图,打开了Identity Inspector并将Class设置为我的自定义类(es)。但是,当我试图从视图拖动连接和/或它的组成控件到自定义视图的.h文件时,IB不会添加连接。
IB允许我通过拖动到父视图控制器的.h而不是自定义视图的.h文件来添加插座/操作。我曾经想过,一旦将View的类设置为我的自定义类,我可以将视图组件的插口拖到我的自定义类中,而不是在视图控制器中。
这个问题似乎与我的相同:how to connect UIview outlets to a custom subview这两个解决方案(手动添加插座并在IB中设置视图的类)并没有改变我的行为。这里有手动网点我说:
customView3.h
#import <UIKit/UIKit.h>
@interface customView3 : UIView
@property (retain) IBOutlet customView3 *view3;
@property (retain) IBOutlet UISlider *slider;
@end
customView3.m
#import "customView3.h"
@implementation customView3
@synthesize view3, slider;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
@end
缺少什么我在这里?我还需要设置/检查以将网点添加到我的自定义UIView而不是视图控制器?
膨胀。所以,我当然可以定义创建控件,手动说滑块,并将其放在我想要的位置。但是,如何以编程方式将动作(如Value Changed)设置为我的自定义类中的函数?我会设置slider.delegate = myCustomView? – Thunk 2013-02-17 07:40:39
老实说,我不知道。我讨厌Interface Builder,我很少使用它。要以编程方式添加动作,请使用'UIControl'的addTarget:action:forControlEvents方法。 – 2013-02-17 07:50:44
为什么不直接用'self'而不是IBOutlet来使用* view3? – 2013-02-17 22:07:10