UIButtons 在某些设备上不起作用

Posted

技术标签:

【中文标题】UIButtons 在某些设备上不起作用【英文标题】:UIButtons not working on certain devices 【发布时间】:2014-10-28 17:06:23 【问题描述】:

我在 Xcode 6 中使用 wAny hAny 布局设置了视图和约束:

当我在 iPhone 5s 和 iPhone 6 上运行应用程序时,UI 元素都是可见的,但在 5s 上,answerback 按钮不起作用 - 它们什么都不做。

在 iPhone 6 上,所有按钮都可以使用。

这是“返回”按钮的代码:

- (IBAction)backFromDivision:(id)sender 
[self dismissViewControllerAnimated:YES completion:nil];

answer 代码有点长,除非必要,否则我不会发布它。

这与限制有关还是我应该在其他地方寻找答案?

【问题讨论】:

有趣的问题 - 在5S上,它不起作用,触摸时按钮是否显示通常的颜色变化? - 即按钮是否从视觉角度起作用? 它们根本不起作用。以视觉方式或以编程方式。 那么我相信这与约束有关。您可以尝试禁用自动布局吗? 【参考方案1】:

嗯,

我点击了“解决自动布局问题”-“重置为建议的约束”(左起第三个):

这“解决了”我的问题。一切都在所有设备上运行。它似乎消除了我设置的一些限制。

我将不得不更多地了解为什么会这样。

【讨论】:

【参考方案2】:

我之前也遇到过类似的问题。问题在于约束以及按钮不在视图范围内的事实。

【讨论】:

如果它不在视图范围内,那为什么它在屏幕上可见? 不是主视图,我指的是子视图。 今天刚遇到类似的问题。我有一个在 XIB 文件中设计的视图。它有 2 个文本字段和一个按钮。我通过启用所有弹簧/支柱更改了容器视图的自动调整大小约束。在所有设备上,一切仍然看起来正常,但按钮不再响应小屏幕(iPhone 5、5s 等)上的点击。我取消了对容器视图的自动调整大小属性的更改,并修复了它。显然可点击区域并不总是与可见区域对齐?奇怪。 @ShawnFlahave 就是这样【参考方案3】:

我遇到了这个问题,问题是由于按钮有:

buttonView.frame.height = 0.(宽度也可能发生)

问题在于,即使没有高度,按钮文本也会出现在屏幕上,因此如果您没有背景按钮的视觉外观不会改变

为了解决这个问题,我使用了不同视图的内容压缩阻力优先级 (CCRP) 来选择哪个视图应该在较小的屏幕上调整大小。

默认的视图CCRP是750,默认的约束优先级是1000。 因此,为了匹配您的约束,ios 可能会调整视图的高度

【讨论】:

以上是关于UIButtons 在某些设备上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥 android:colorBackground 在某些设备上不起作用?

突然 fcm 通知在某些 iOS 设备上不起作用

performSegueWithIdentifier 在某些设备上不起作用

React Native WebView 在某些设备上不起作用

Android解析推送通知在某些设备上不起作用

对象 FileTransfert 的上传()在某些 android 设备上不起作用