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

标签 ios objective-c uiscrollview

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

- (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.
}

所以,即使按钮似乎只是在我的 View 的左上角,我在按钮的右侧有一堆滚动空白,但我根本不想要任何水平滚动。

最佳答案

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

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

您可能还希望您的 UIScrollView 与您的 View Controller 具有相同的宽度。

关于ios - 以编程方式向 UIScrollView 添加按钮时如何禁用水平滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16889449/

相关文章:

html - 从包中加载 UIWebView 中的不同 HTML

ios - 调用 GSM 服务 #123*

ios - 以编程方式更改按钮文本

objective-c - UITableView iOS11 不滚动 - XCode 9

iphone - 渐变背景 UIScrollView

ios - 使用 Swift 4 ping 网站或 IP 地址(或检查网站是否在线)?

ios - 使用 StoryBoard 的 PDF 查看器

objective-c - 检测 UIWebView 何时在没有委托(delegate)的情况下完成加载

ios - 旋转 iPad 和 AdMob 不再加载,就像 iAds

ios - 使用自动布局缩放 UIScrollView