标签: autolayout

不同iPhone的按钮位置不同

我如何才能将按钮保持在所有不同版本的iPhone的相同位置?我有一个背景图像,最重要的是,我有一个按钮。这是用于iPhone 6。

这是为iPhone 5。

无论如何,我可以为按钮提供固定位置吗?

以下是基于故事板的外观。 在此处输入图片说明

storyboard ios autolayout

1
推荐指数
1
解决办法
662
查看次数

隐藏互斥子视图后,调整容器UIView的大小以匹配可见子视图的高度

ParentView包含ChildView1和ChildView2。这些子视图的高度不同。

ChildView1比ChildView2高。仅显示一个子视图,例如,如果ChildView1可见,则ChildView2隐藏。ChildView1和ChildView2都使用自​​定义XIB。

两个子视图都“驱动” ParentView的高度,也就是说,AutoLayout约束已连线,使得ParentView与ChildView1或ChildView2一样高,而没有更高。

问题是隐藏ChildView1并显示ChildView2不会“缩小” ParentView以匹配ChildView2的高度。它保持在较高的子视图ChildView1的高度。

调用sizeToFit()setNeedsLayout()不会改变任何事情。

隐藏ChildView1时,如何强制ParentView匹配ChildView2的高度?

storyboard xib ios autolayout nslayoutconstraint

1
推荐指数
1
解决办法
846
查看次数

UICollectionViewCell自动布局以编程方式

我试图以UICollectionViewCell编程方式创建一个子类.我正在尝试使用自动布局支持创建.

我想要UIView添加前导,顶部,尾部和底部约束的单元格的内容视图.但是当我这样做时,我的UIView's宽度和高度保持为零.这是我的代码内部initWithFrame方法:

    self.contentView.translatesAutoresizingMaskIntoConstraints = NO;
    _someView = [[UIView alloc] initWithFrame:CGRectZero];
    _someView.translatesAutoresizingMaskIntoConstraints = NO;
    [self.contentView addSubview:_someView];
    NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-2-[someView]-2-|" options:0 metrics:nil views:@{@"someView" : _someView}];
    NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-2-[someView]-2-|" options:0 metrics:nil views:@{@"someView" : _someView}];

    [self.contentView addConstraints:horizontalConstraints];
    [self.contentView addConstraints:verticalConstraints];
Run Code Online (Sandbox Code Playgroud)

这是UI调试器的截图: 在此输入图像描述

为什么这些限制是灰色的?

谢谢!

objective-c ios autolayout uicollectionviewcell

1
推荐指数
1
解决办法
1326
查看次数

在Autolayout IOS中使用标准值而不是常量

我刚刚开始学习IOS开发,所以我的知识很少.

我正在为我的应用构建我的布局.我需要我的应用程序在所有设备上运行.我在某处读过,在创建约束时永远不要使用常量幻数,并始终使用标准值.我想为所有决议支持我的应用程序

每当我设置标准值时,它为'0',这意味着我必须使用乘数值来获得相似的间距

如果我们能够使用恒定价值并且必须避免,请告知我们.

ios autolayout ios-autolayout

1
推荐指数
1
解决办法
581
查看次数

Swift:在iOS中显示键盘的顶部创建边框或细线

正如话题已经说过的那样,我尝试在我的UIKeyboard外观上创建一个小线.原因是,如果我在白色背景下弹出白色键盘,它看起来很糟糕.

一个想法是创建一个薄的1px线并将其放在底部,隐藏它并在显示键盘时显示它并将其与自动布局对齐.这个想法的缺点是在每个视图中都这样做.

谢谢你的想法.

uikeyboard ios autolayout swift

1
推荐指数
2
解决办法
1057
查看次数

tableView顶部的空白区域嵌入容器视图中

我有一个viewControllerx 2容器视图,其中x 2不同tableViews.我segmentControl在主视图的顶部使用a 来在这两个tableView之间切换.它工作得很好.

在其中一个tableViews上,我想向下钻取以显示另一个tableView.问题是,当我这样做时,在视图的顶部留下一个空白的空白区域,这段空间曾经是(至少我认为这是造成空白区域的原因.)

我如何确保tableView在导航栏下舒适地坐着?

以下是一些供参考的图像:
1.主视图是否包含段控件.
2.是容器视图. 在此输入图像描述

选择一个片段会显示如下所示的视图.哪个好.

在此输入图像描述

但是当我向下钻取时,我得到了这个:

在此输入图像描述

我可以向上滚动,没问题,并手动将图像放在导航栏下,这样就告诉我它不是视图不够大.

如何删除图像上方的空白区域?

提前致谢.

uitableview ios autolayout uicontainerview swift

1
推荐指数
2
解决办法
2338
查看次数

iOS约束:如何给出UILabel高度约束优先级

我有以下问题:我有一个固定高度的视图.在此视图中,有两个单线UILable.视图比两个标签都大,所以我希望它们显示如下: UIView有两个UILabels

我添加了三个约束来实现这一目标:

  • 第一个标签顶部查看顶部
  • 第二个标签顶部到第一个标签底部
  • 第二个标签底部查看底部

(如果你愿意,我可以为此添加代码,但我认为它非常明显)

所以现在问题是如下.有时视图按预期呈现,但有时呈现的方式不同: 错误的UILabels

这种行为很随机.我认为这是因为,两个UILabel都具有相同优先级的(自动生成的)高度约束.有时,第一个标签的尺寸正确,有时第二个标签会得到它.那么有没有办法改变那些自动生成的高度约束的优先级或实现这种布局的另一种方式?(我不想为第二个UILabel使用containerview)

最好的祝福

ios autolayout

1
推荐指数
1
解决办法
1410
查看次数

基于文本调整UIButton大小的最简单方法

我的文本可以是可变长度的.我想调整按钮的大小来显示文本.有时文本太多,在这种情况下我想将大小限制为一定的宽度.我怎么能为UIButton做到这一点.

在此输入图像描述

以上是长篇大论的文字.我想只显示40个字符.

我正在尝试使用该范围,我得到以下内容:

在此输入图像描述

最后结果:

在此输入图像描述

ios autolayout swift

1
推荐指数
1
解决办法
2425
查看次数

禁用UIScrollView AutoLayout可调整大小的ScrollView的水平滚动

我有一个UIScrollView,它根据某些条件在运行时调整大小.现在我正确地使用了自动布局,而不使用额外或更少的单个约束.滚动视图的第一个子视图具有滚动视图的前导,尾随,顶部,底部和相等宽度,内容视图的高度由其内部内容管理,内部内容也根据运行时条件而变化.现在根据我的约束我的内容视图不应该水平滚动,因为我使用相同的宽度滚动视图.但它正在发生.任何人都可以建议我做错了什么?这是我使用的约束的图像.

注意: - 我已经看到堆栈上的帖子,这样的问题得到了解答,但我的情况有所不同.

在此输入图像描述

uiscrollview ios autolayout ios-autolayout

1
推荐指数
1
解决办法
2166
查看次数

如何设置NSLayoutAnchor以生成纵横比为1:1的居中子视图

这听起来并不太难,但经过几个小时的尝试后,我无法得到合适的解决方案.

问题:我想设置约束(使用类NSLayoutAnchor)以获得以超视图为中心的子视图(colorImageView),纵横比为1:1并且总是处于有时具有宽度>高度的超视图中的最大尺寸或高度>宽度.

示例1:SuperViewSize = width:80,height = 100 - > subview应获得80的高度和宽度,并以(40/50)为中心

示例2:SuperviewSize = width:60,height = 50 - >子视图的高度和宽度应为50并且以(30/25)为中心

我不想/并且它没有解决问题/硬编码widthConstraint = min(superviewWidth,superviewHeight)因为在创建子视图的那一刻,超视图边界没有最终定义 - >所以我需要一个约束.

这是我到目前为止的尝试(仍然缺少在不同的超视图中最大可能设置高度和宽度的约束:

// CREATE CONSTRAINTS(center in SuperView)
colorImageView.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
colorImageView.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true

// CREATE CONSTRAINTS (ratio 1:1)
colorImageView.widthAnchor.constraint(equalTo: colorImageView.heightAnchor, multiplier: 1.0).isActive = true
Run Code Online (Sandbox Code Playgroud)

我真的很感激一个暗示,怎么做.提前致谢 :))

autolayout nslayoutanchor

1
推荐指数
1
解决办法
2538
查看次数