gpt4 book ai didi

ios - 将 UIScrollView 添加到 UIViewController

转载 作者:技术小花猫 更新时间:2023-10-29 10:59:18 27 4
gpt4 key购买 nike

我有一个UIViewController,我想给它添加一个UIScrollView(启用滚动支持),可以吗?

我知道这是可能的,如果你有一个 UIScrollView 向它添加一个 UIViewController,但我也很感兴趣如果 reverse 是真的,如果我可以添加一个 UIScrollView 到一个现有的 UIViewController,这样我就可以获得滚动功能。

编辑

我想我找到了答案:Adding a UIViewController to UIScrollView

最佳答案

一个 UIViewController 有一个 view 属性。因此,您可以将 UIScrollView 添加到它的 view 中。换句话说,您可以将 ScrollView 添加到 View 层次结构中。

这可以通过代码或通过 XIB 实现。此外,您可以将 View Controller 注册为 ScrollView 的委托(delegate)。通过这种方式,您可以实现执行不同功能的方法。请参阅 UIScrollViewDelegate 协议(protocol)。

// create the scroll view, for example in viewDidLoad method
// and add it as a subview for the controller view

[self.view addSubview:yourScrollView];

您还可以覆盖 UIViewController 类的 loadView 方法,并将 ScrollView 设置为您正在考虑的 Controller 的主视图。

编辑

我为您创建了一个小示例。在这里,您有一个 ScrollView 作为 UIViewController View 的 subview 。 ScrollView 有两个 subview :view1(蓝色)和view2(绿色)。

在这里,我想您只能在一个方向上滚动:水平或垂直。在下面,如果您水平滚动,您可以看到 ScrollView 按预期工作。

- (void)viewDidLoad
{
[super viewDidLoad];

UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
scrollView.backgroundColor = [UIColor redColor];
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.contentSize = CGSizeMake(self.view.bounds.size.width * 2, self.view.bounds.size.height);
[self.view addSubview:scrollView];

float width = 50;
float height = 50;
float xPos = 10;
float yPos = 10;

UIView* view1 = [[UIView alloc] initWithFrame:CGRectMake(xPos, yPos, width, height)];
view1.backgroundColor = [UIColor blueColor];
[scrollView addSubview:view1];

UIView* view2 = [[UIView alloc] initWithFrame:CGRectMake(self.view.bounds.size.width + xPos, yPos, width, height)];
view2.backgroundColor = [UIColor greenColor];
[scrollView addSubview:view2];
}

如果你只需要垂直滚动你可以改变如下:

scrollView.contentSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height * 2);

显然,您需要重新排列view1view2的位置。

附言这里我使用的是 ARC。如果不使用 ARC,则需要显式释放 alloc-init 对象。

关于ios - 将 UIScrollView 添加到 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14055950/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com