0

我在同一个问题上查看了许多不同的线程,似乎无法理解这里发生了什么。我创建了一个非常基本和简单的项目。我想要发生的是一堆元素在正确滚动的滚动视图中。这些元素可能包括一个独立滚动(或不滚动)的 UITableView。这是我设置基本项目的方式:

IB视图

在模拟器中运行它会导致视图不滚动。这是意料之中的,因为所有元素都有足够的空间。然后我改变了 UIScrollView 的大小,如下所示:

IB视图2

在模拟器中运行它会产生一个不会滚动的较小视图。我认为我没有以正确的方式这样做。这是我最近尝试过的代码:

ViewController.h

@interface ViewController : UIViewController <UIScrollViewDelegate>

@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
@property (strong, nonatomic) IBOutlet UIButton *buttonOne;
@property (strong, nonatomic) IBOutlet UIButton *buttonTwo;
@property (strong, nonatomic) IBOutlet UIButton *buttonThree;
@property (strong, nonatomic) IBOutlet UIButton *buttonFour;

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [self.buttonOne setTranslatesAutoresizingMaskIntoConstraints:NO];
    [self.buttonTwo setTranslatesAutoresizingMaskIntoConstraints:NO];
    [self.buttonThree setTranslatesAutoresizingMaskIntoConstraints:NO];
    [self.buttonFour setTranslatesAutoresizingMaskIntoConstraints:NO];
    [self.scrollView setTranslatesAutoresizingMaskIntoConstraints:NO];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

任何帮助将不胜感激。

4

1 回答 1

3

问题是当您在界面生成器中更改滚动视图的大小时,您还将内容的大小设置为与框架大小相同。

您可以在代码中手动增加滚动视图的内容大小,以便您可以像这样滚动它:

// scrollView is an outlet to your scroll view
// Add 200 points to the bottom of the scroll view
[self.scrollView setContentInset:UIEdgeInsetsMake(0, 0, 200, 0)];

不过,您可能不需要这样做,只要您以全尺寸绘制子视图,并使其成为其他视图的子视图,并让它自动调整大小。

于 2013-03-04T21:18:33.610 回答