使用自动布局时在 Y 轴上移动 UIButton

Posted

技术标签:

【中文标题】使用自动布局时在 Y 轴上移动 UIButton【英文标题】:Moving UIButton on Y axis while using Autolayout 【发布时间】:2015-03-14 09:13:13 【问题描述】:

我正在开发一个项目,我正在为应用程序使用自动布局/通用故事板。

我有一个 UIButton,我想在某个事件上移动到新位置。但不影响自动布局。所以它在每台设备上看起来都是一样的。

我已经设法通过这段代码移动了按钮:

int deltaY = 100;

    [ans1 removeConstraints:ans1.constraints];
    ans1.frame = CGRectMake(ans1.frame.origin.x, ans1.frame.origin.y + deltaY, ans1.frame.size.width, ans1.frame.size.height);

但是按钮会在一秒钟左右内移回原来的位置。

【问题讨论】:

【参考方案1】:

为什么要删除 Button 中的约束?您可以创建按钮 Y 约束的 IBOutlet 而不是删除约束,然后更改该 Y 约束值

选择要更改的 LayoutConstraint,然后控制拖动到您的 .h 文件中

@property (nonatomic, weak) IBOutlet NSLayoutConstraint *yAxisConstrain;

像这样改变你的约束值,

yAxisConstrain.constant = 0; //What ever the value you want.
[self.view layoutIfNeeded];

【讨论】:

从来没有这样想过!只是一个有点愚蠢的问题。我还在学习 ios,因为我之前一直在研究 C#。如何将 yAxisConstrain 连接到我的 UIButton (ans1),因为我无法通过界面生成器/情节提要连接它。

以上是关于使用自动布局时在 Y 轴上移动 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

使用自动布局在屏幕更改时调整自定义单元格中的 UIButton 字体

使用自动布局将 UIButton 添加到自定义单元格

如何在标准 UITableViewCell 中以编程方式自动布局右侧的自定义 UIButton。

如何使用自动布局来对齐这两个 UIButton?

Dimple.js如何在Y轴上自定义0到100的值范围?

UIButton,自动布局和获取按钮的高度