标签: uistackview

UIStackView可以滚动吗?

假设我在UIStackView中添加了更多可以显示的视图,如何制作UIStackView滚动?

uiscrollview ios uistackview

174
推荐指数
9
解决办法
8万
查看次数

以编程方式在UIStackView中添加视图

我正在尝试以编程方式在UIStackView中添加视图.现在我的代码是:

UIView *view1 = [[UIView alloc]init];
view1.backgroundColor = [UIColor blackColor];
[view1 setFrame:CGRectMake(0, 0, 100, 100)];

UIView *view2 =  [[UIView alloc]init];
view2.backgroundColor = [UIColor greenColor];
[view2 setFrame:CGRectMake(0, 100, 100, 100)];

[self.stack1 addArrangedSubview:view1];
[self.stack1 addArrangedSubview:view2];
Run Code Online (Sandbox Code Playgroud)

当我部署应用程序时,只有一个视图,它是黑色的.(view1也获取view2的参数)

objective-c ios ios9 uistackview

142
推荐指数
10
解决办法
16万
查看次数

如何改变UIStackView的背景颜色?

我试图UIStackView在Storyboard检查器中将背景从清除更改为白色,但在模拟时,堆栈视图的背景颜色仍然具有清晰的颜色.
如何更改背景颜色UIStackView

ios swift uistackview

135
推荐指数
7
解决办法
5万
查看次数

UIStackView中的多行标签

将多行标签(将换行符设置为Word Wrap)放入堆栈视图时,标签会立即丢失换行符并在一行中显示标签文本.

为什么会发生这种情况?如何在堆栈视图中保留多行标签?

uikit uilabel ios xcode7 uistackview

122
推荐指数
10
解决办法
5万
查看次数

如何在UIStackView中添加前导填充添加到视图中

这是我的设置:我有一个UIScrollView领先的,顶部的,试验边缘设置为0.在此我添加一个UIStackView有这个约束:

stackView.centerYAnchor.constraintEqualToAnchor(selectedContactsScrollView.centerYAnchor).active = true  
stackView.leadingAnchor.constraintEqualToAnchor(selectedContactsScrollView.leadingAnchor).active = true
Run Code Online (Sandbox Code Playgroud)

在堆栈视图中,我添加了一些视图.
我的问题是,由于约束,添加到堆栈视图的第一个视图也将具有前沿= 0.

我可以在第一个视图中添加一些填充的方法是什么?无需调整滚动视图约束.

uiscrollview ios swift uistackview

101
推荐指数
7
解决办法
7万
查看次数

UIStackView"无法同时满足约束"对"压扁"隐藏视图的影响

当我的UIStackView"行"被压扁时,它们会AutoLayout发出警告.但是,它们显示正常,除了这些类型的记录之外别无其他错误:

无法同时满足约束.可能至少下列列表中的一个约束是您不想要的约束.试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它.(注意:如果您发现NSAutoresizingMaskLayoutConstraints自己不明白,请参阅该UIView物业的文件translatesAutoresizingMaskIntoConstraints)(

所以,我不知道如何解决这个问题,但它似乎并没有破坏任何东西,除了烦恼.

有谁知道如何解决它?有趣的是,布局约束经常使用"UISV隐藏"进行标记,这表明它可能应该忽略子视图的高度最小值或者此实例中的某些内容?

uikit ios autolayout ios9 uistackview

90
推荐指数
3
解决办法
2万
查看次数

如何在视图之间创建具有可变间距的UIStackView?

我有一个简单的横向 UIStackView,里面堆叠了几个UIViews.我的目标是在视图之间创建可变间距.我很清楚我可以使用"spacing"属性在子视图之间创建恒定的空间.但是我的目标是创建可变空间.请注意,如果可能的话,我希望避免使用充当间隔物的隐形视图.

我想出的最好的方法是将我UIViews的内容包装起来UIStackView,并layoutMarginsRelativeArrangement = YES用来尊重内部堆栈的布局边距.我希望我可以做任何类似的事情UIView而不诉诸于这种丑陋的工作.这是我的示例代码:

// Create stack view
UIStackView *stackView = [[UIStackView alloc] init];
stackView.translatesAutoresizingMaskIntoConstraints = NO;
stackView.axis = UILayoutConstraintAxisHorizontal;
stackView.alignment = UIStackViewAlignmentCenter;
stackView.layoutMarginsRelativeArrangement = YES;

// Create subview
UIView *view1 = [[UIView alloc] init];
view1.translatesAutoresizingMaskIntoConstraints = NO;
// ... Add Auto Layout constraints for height / width
// ...
// I was hoping the layoutMargins would be respected, but they are not
view1.layoutMargins = UIEdgeInsetsMake(0, 25, 0, 0);

// …
Run Code Online (Sandbox Code Playgroud)

ios-autolayout ios9 uistackview

62
推荐指数
2
解决办法
3万
查看次数

UIStackView:是否真的有必要同时调用removeFromSuperView和removeArrangedSubview来删除子视图?

来自UIStackView类参考

在removeArrangedSubview中:

要在调用堆栈的removeArrangedSubview:方法后阻止视图出现在屏幕上,请通过调用视图的removeFromSuperview方法显式删除子视图数组中的视图.

在安排的子视图中:

每当调用排列视图的removeFromSuperview方法时,堆栈视图就会从其arrangeSubview数组中删除视图

从这些看来,调用removeFromSuperview似乎足以删除子视图,我一直在使用它,没有问题.我还通过在调用removeFromSuperview时记录arrangeSubviews数组的计数来确认行为.

这里有很多关于S/O的教程和评论,比如说两者都叫.是否有一个原因?或者人们只是这样做,因为文档是这样说的?

ios uistackview

55
推荐指数
6
解决办法
2万
查看次数

在仅变换图层中更改属性contentsGravity将不起作用

我开始创造一个非常简单的tic-tac-toe游戏.主要目标是使视图与所有iOS设备的所有屏幕大小成比例.所以我将图像放在a上ViewController,使其成为完整大小的屏幕,然后将其放入堆栈视图中.我已向所有方面添加了对此Stack View 0的约束.当我运行模拟器时,一切看起来都不错.但我在控制台面板中收到一条消息.这是什么意思?

截图

xcode ios ios9 xcode7 uistackview

53
推荐指数
2
解决办法
2万
查看次数

UIStackView隐藏视图动画

在iOS 11中,隐藏动画在a中的行为UIStackView已发生变化,但我无法在任何地方找到此文档.

iOS 10

iOS 10动画

iOS 11

iOS 11动画

两者中的代码是这样的:

UIView.animate(withDuration: DiscoverHeaderView.animationDuration,
                       delay: 0.0,
                       usingSpringWithDamping: 0.9,
                       initialSpringVelocity: 1,
                       options: [],
                       animations: {
                            clear.isHidden = hideClear
                            useMyLocation.isHidden = hideLocation
                        },
                       completion: nil)
Run Code Online (Sandbox Code Playgroud)

如何在iOS 11上恢复以前的行为?

animation uikit ios swift uistackview

53
推荐指数
5
解决办法
2万
查看次数