0

我目前正在开发一个 iPhone 5 应用程序,该应用程序在 4 英寸屏幕的左右下角有两个按钮,我想在使用 iPhone 4(3.5 英寸)时使用滚动来到达它们。我已将 ScrollView 放在 xib 上并将按钮放在下方。我的 .h 文件是这样的:

@interface learnView : UIViewController {
    __weak IBOutlet UIScrollView *scroll;
}
- (IBAction)doneLearn:(id)sender;
- (IBAction)randomLearn:(id)sender;

滚动出口链接在文件的所有者中,我已经在 .m 文件中启用了滚动:

[super viewDidLoad]
[scroll setScrollEnabled:YES];
[scroll setContentSize:CGSizeMake(320, 503)];

我不确定上面的 CGSizeMake 是否像它应该定义的那样定义,但这些值代表我在 xib 上的 scrollView 的大小。此外,我将视图的大小设置为“自由格式”。当我运行模拟器时,所有这些都没有效果,视图中不存在滚动。我究竟做错了什么?

4

3 回答 3

1

要滚动滚动视图,您必须将内容大小设置为大于框架

就像

[super viewDidLoad]
[scroll setScrollEnabled:YES];
[scroll setFrame:self.view.bounds];
[scroll setContentSize:CGSizeMake(320, 603)];

试试这个,它一定会对你有所帮助......

于 2013-10-08T15:29:21.867 回答
1

问题是因为即使您在 3.5" 模拟器中启动 xib 大小仍然是 4" 屏幕的大小 (320,568)

您可以尝试使用此手动加载滚动视图。

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(210, 450, 100, 100)];

[button setTitle:@"button" forState:UIControlStateNormal];

[button addTarget:self action:@selector(handleButtonTap:) forControlEvents:UIControlEventTouchUpInside];

button.backgroundColor = [UIColor blueColor];

[view addSubview:button];

view.backgroundColor = [UIColor blackColor];

[scrollView addSubview:view];
[scrollView setContentSize:CGSizeMake(320, 568)];

[self.view addSubview:scrollView];
于 2013-10-08T17:33:36.343 回答
1

我认为在您的情况下,框架高度是问题所在。在 3 英寸设备中,框架得到了扩展。尝试这个

 [super viewDidLoad]
 [scroll setScrollEnabled:YES];
 [scroll setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
 [scroll setContentSize:CGSizeMake(320, 603)];

如上所述将框架设置为设备的高度。确保此滚动视图已添加到视图中。并且还打印和检查

  NSLog(@"Scroll view height %@ App frame height %@",scroll.frame.size.height,self.view.frame.size.height);

编辑:从代码中添加滚动视图和按钮。

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 65, 320, 460)];
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 50)];
[scrollView addSubview:button];
[scrollView setContentSize:CGSizeMake(320, 568)]; 
[self.view addSubview:scrollView];
于 2013-10-08T16:28:04.963 回答