Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何以编程方式使用UIScrollView使UIStackView滚动?_Ios_Uiscrollview_Uistackview - Fatal编程技术网

Ios 如何以编程方式使用UIScrollView使UIStackView滚动?

Ios 如何以编程方式使用UIScrollView使UIStackView滚动?,ios,uiscrollview,uistackview,Ios,Uiscrollview,Uistackview,我见过几种解决方案,可以使用UIStackView滚动UIScrollView,但它们都依赖于自动布局和IB 有没有一种方法可以通过编程实现 我见过这个例子: 但它使用的是可视化格式语言,我使用的是布局锚API 布局锚API: view.leadingAnchor.constraintEqualToAnchor(otherview.topAnchor).active = true 您可以尝试ScrollableStackView: 示例代码(Swift) 示例代码(Objective-C) 希

我见过几种解决方案,可以使用
UIStackView
滚动
UIScrollView
,但它们都依赖于自动布局和IB

有没有一种方法可以通过编程实现

我见过这个例子:

但它使用的是可视化格式语言,我使用的是布局锚API

布局锚API:

view.leadingAnchor.constraintEqualToAnchor(otherview.topAnchor).active = true

您可以尝试ScrollableStackView

示例代码(Swift)

示例代码(Objective-C)


希望能有所帮助。

我也在想做同样的事情,无意中总结了一下,将
UIStackView
嵌入到
UIScrollView
中,并通过设置
UIStackView
的锚定约束来匹配
UIScrollView
的锚定约束,继续按照您的思路进行操作:

stackView.leadingAnchor.constraintEqualToAnchor(scrollView.leadingAnchor).active = true
stackView.trailingAnchor.constraintEqualToAnchor(scrollView.trailingAnchor).active = true
stackView.bottomAnchor.constraintEqualToAnchor(scrollView.bottomAnchor).active = true
stackView.topAnchor.constraintEqualToAnchor(scrollView.topAnchor).active = true
stackView.widthAnchor.constraintEqualToAnchor(scrollView.widthAnchor).active = true

B实际上,您需要做的是将堆栈视图添加到scrollview,并使scroll view的内容视图大于scroll view框架,以使scroll view滚动!请尝试将安全屏幕大小设置为200x200左右,不要担心自动布局。您能否提供一个代码示例,以便我将其标记为答案并实现它?我在回答此问题时提供了一个使用布局锚的示例相关问题可能重复,但不是重复:
@import ScrollableStackView

ScrollableStackView *scrollable = [[ScrollableStackView alloc] initWithFrame:self.view.frame];
scrollable.stackView.distribution = UIStackViewDistributionFillProportionally;
scrollable.stackView.alignment = UIStackViewAlignmentCenter;
scrollable.stackView.axis = UILayoutConstraintAxisVertical;
[self.view addSubview:scrollable];

UIView *rectangle = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 55)];
[rectangle setBackgroundColor:[UIColor blueColor]];

// add your views with
[scrollable.stackView addArrangedSubview:rectangle]; 
// ...
stackView.leadingAnchor.constraintEqualToAnchor(scrollView.leadingAnchor).active = true
stackView.trailingAnchor.constraintEqualToAnchor(scrollView.trailingAnchor).active = true
stackView.bottomAnchor.constraintEqualToAnchor(scrollView.bottomAnchor).active = true
stackView.topAnchor.constraintEqualToAnchor(scrollView.topAnchor).active = true
stackView.widthAnchor.constraintEqualToAnchor(scrollView.widthAnchor).active = true