我有一个简单的视图控制器,其中有几个按钮被定义为IBActions。我想将它们放在滚动视图上,基本上可以使整个页面可滚动(假设它们是非常大的按钮,我有一堆它们)。我怎样才能做到这一点?我试图添加这些按钮,但由于它们被定义为IBAction,因此无效。
以下是我的一些代码。谢谢!
- (IBAction) switchFromThird : (id)sender
{
//some action...
}
- (IBAction) BackHome : (id)sender
{
//some action...
}
- (void)viewDidLoad
{
[super viewDidLoad];
myScroll.contentSize = CGSizeMake(480, 1000);
myScroll.maximumZoomScale = 4.0;
myScroll.minimumZoomScale = 1.0;
myScroll.clipsToBounds = YES;
myScroll.delegate = self;
[myScroll addSubview:switchFromThird]; //???
[myScroll addSubview:BackHome]; //???
[myScroll release];
}
答案 0 :(得分:2)
请阅读iOS Developer Library中的this article。您无法在视图中添加方法(功能)!就像你想在一张纸上打印一份计算机程序一样!
你应该这样做:
IBOutlet UIButton *BackHomeButton
。BackHomeButton
插座连接到按钮[myScroll addSubview:BackHome];
替换为[myScroll addSubview:BackHomeButton];
。然后,只有这样它才会起作用。正如我所说:你只能打印图像和文字,而不能打印计算机程序!
答案 1 :(得分:1)
IBAction
不是按钮。它们是专门标记的方法,以便Interface Builder可以轻松找到它们。您仍然需要创建按钮。
您可以在Interface Builder中将它们从对象库拖到滚动视图中来执行此操作。然后,您可以通过鼠标右键将IBAction
从新按钮拖到IBAction
上定义的任何对象。
如果您希望以编程方式创建按钮,则需要调用[[UIButton alloc[ init
...然后使用按钮的addTarget:action:forControlEvents:
方法将按钮连接到您的方法。在这种情况下,没有必要将您的方法声明为IBAction
,这只是Apple为了使Interface Builder更容易找到相关方法而付出的代价。