Ios 如何在以编程方式向UIScrollView添加按钮时禁用水平滚动?

Ios 如何在以编程方式向UIScrollView添加按钮时禁用水平滚动?,ios,objective-c,uiscrollview,Ios,Objective C,Uiscrollview,我正在学习如何使用UIScrollView,并添加了一些按钮进行测试。然而,我发现每当我添加一个按钮时,不管它有多小,或者我把它放在我的视图中的什么位置,它都会导致大量的水平滚动。这是我的相关代码: - (void)viewDidLoad { [super viewDidLoad]; [_scroller setScrollEnabled:YES]; [_scroller setContentSize:CGSizeMake(640, 3000)]; UIButt

我正在学习如何使用UIScrollView,并添加了一些按钮进行测试。然而,我发现每当我添加一个按钮时,不管它有多小,或者我把它放在我的视图中的什么位置,它都会导致大量的水平滚动。这是我的相关代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [_scroller setScrollEnabled:YES];
    [_scroller setContentSize:CGSizeMake(640, 3000)];

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [btn setTitle:@"Cool title" forState:UIControlStateNormal];
    [btn setFrame:CGRectMake(50, 50, 50, 50)];
    [btn addTarget:self action:@selector(selectFav) forControlEvents:UIControlEventTouchUpInside];
    [_scroller addSubview:btn];
    // Do any additional setup after loading the view, typically from a nib.
}

因此,即使按钮看起来只是在我视图的左上角,我在按钮的右侧有一堆滚动的空白,但我根本不希望任何水平滚动。

UIScrollView的内容大小为640。如果这是针对iPhone的,您可能需要320。更好的是,将内容大小宽度设置为与UIScrollView宽度相同的宽度

[_scroller setContentSize:CGSizeMake(_scroller.size.width, 3000)];   

您可能还希望您的UIScrollView具有与视图控制器相同的宽度。

将UIScrollView的内容大小设置为640。如果这是针对iPhone的,您可能需要320。更好的是,将内容大小宽度设置为与UIScrollView宽度相同的宽度

[_scroller setContentSize:CGSizeMake(_scroller.size.width, 3000)];   
您可能还希望UIScrollView具有与视图控制器相同的宽度