如何设置包含许多按钮的滚动视图?

时间:2011-06-30 06:13:04

标签: ios scrollview

我一直在尝试在滚动视图上添加按钮,但无法执行这些操作。我想在视图中添加更多7个按钮,但我希​​望用户可以通过向下滚动来访问所有七个按钮。我怎么能这样做?

请有人指导我,或者给我一个我能理解的链接。

编辑:

我创建了一个基于视图的应用程序,命名为poo1&在poo1ViewController.h中,

@interface poo1ViewController  : UIViewController <infodelegate>
{
 IBOutlet UIButton *a;
 IBOutlet UIButton *b;
 IBOutlet UIButton *c;
 IBOutlet UIButton *d;
 IBOutlet UIButton *e;
 IBOutlet UIScrollView *fView;
}
@property (nonatomic,retain) UIScrollView *fView;;
@property (nonatomic,retain) UIButton *a;
@property (nonatomic,retain) UIButton *b;
@property (nonatomic,retain) UIButton *c;
@property (nonatomic,retain) UIButton *d;
@property (nonatomic,retain) UIButton *e;
-(IBAction) ia:(id)sender;

并在实施文件中

#import "poo1ViewController.h"


@implementation poo1ViewController

@synthesize a;
@synthesize b;
@synthesize c;
@synthesize d;
@synthesize e;
@synthesize fView;
-(IBAction) ia:(id)sender {
}


@end

LIke这个我有一个方法用于所有按钮,现在我希望当应用程序打开时所有按钮都存在但是要访问所有用户需要向下滚动,我不知道如何实现滚动视图当前视图,因此poo1ViewController.xib视图可以滚动。

2 个答案:

答案 0 :(得分:1)

我也有同样的问题。我以编程方式创建按钮,无法访问所有按钮,因为视图没有滚动。滚动的重要性是我的代码的最后一行。首先,我为按钮设置了一个特定的起点“positionX”。之后,我遍历我的数据库并为每个条目创建一个按钮。创建一个新按钮后,我将positionX增加一个按钮+10的高度。当所有按钮都已创建时,循环结束,positionX的值也将用于我的UIScrollView的高度。

int positionX = 10;

for (int i = 0; i < [activities count]; i++) {

    //get single object out of nsarray
    Activity *activity = [activities objectAtIndex:i];

    //create button for an activity
    UIButton *activityButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [activityButton setTitle:activity.definition forState:UIControlStateNormal];
    activityButton.frame = CGRectMake(10, positionX, 300, 40);
    [self.activityScrollView addSubview:activityButton];

    positionX += 50;
}

//set the content size of the scroll view
[self.activityScrollView setContentSize:CGSizeMake(320, positionX + 20)];

也许this website也很有用。我在阅读完本教程后解决了这个问题。

答案 1 :(得分:0)

UIScrollView中的scrollable不会是Interface Builder。您需要将其展开并将UIButtons添加到您希望的位置,然后在结尾处调整UIScrollView的大小,或者您需要添加UIButtons { {1}} programmatically

就个人而言,我选择以编程方式执行此操作。你也可以通过编程方式创建UIScrollView(我选择做什么),或者如果你想剪切UIButtons,你可以将它们添加到你cornersUIScrollView {1}}文件,并确保您有xib将它们连接到您的代码。然后在您的代码中将帧设置为您想要的位置。

IBOutlet

然后确保设置-(void)viewWillAppear:(BOOL)animated { // CGRectMake(x,y,width,height) a.frame = CGRectMake(20, 20, a.frame.size.width, a.frame.size.height); b.frame = CGRectMake(20, 50, b.frame.size.width, b.frame.size.height); // etc. etc. for the rest of your buttons 的框架和contentSize,否则不会滚动。

UIScrollView