UIButtons 在横向和较小的设备上被挤压

Posted

技术标签:

【中文标题】UIButtons 在横向和较小的设备上被挤压【英文标题】:UIButtons squished on landscape and smaller devices 【发布时间】:2017-12-02 11:55:42 【问题描述】:

我通过在垂直堆栈视图中嵌套水平堆栈视图来为我的应用程序构建 UI。在 iPhone 8 Plus 上,UIButton 以纵向和横向两种方式显示。下面是 iPhone 8 Plus 模拟器上的横向屏幕截图。

堆栈视图采用填充对齐和填充均匀分布。每个按钮的内容模式都设置为 Aspect Fit,当在较小的设备上进行测试时,UIButton 会被压扁并失去其纵横比。下面是 iPhone SE 模拟器上的横向屏幕截图。

如何防止图像被挤压?

【问题讨论】:

【参考方案1】:

您可以通过编程方式设置 Image 并将按钮的 imageView 的 contentMode 设置为 center 或 aspectFit。

settingsButton.imageView?.contentMode = .center
settingsButton.setImage(UIImage.init(named: "imagename"), for: .normal) 

或者您可以更改您的 UIButton 的约束,并为高度和宽度提供 1:1 的纵横比。

【讨论】:

愚蠢的问题,但我会在按钮所在的 viewController 上实现这种方法吗?我对此超级陌生。此外,当我在约束面板中使用纵横比选项时,堆栈视图会改变大小。不知道为什么。 我会将插座视为计算属性吗? 是的,只需为每个按钮设置一个单独的插座,并在 viewDidLoad 中设置图像,而不是在情节提要中。 知道了!谢谢你:)

以上是关于UIButtons 在横向和较小的设备上被挤压的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 内容在较小的 iPhone 屏幕上被截断

在较小的设备中覆盖填充 React Material UI

UIButton 和 UILabel 在较小的屏幕上不可点击

当设备仅从纵向旋转到横向时,网页上的全屏图像被挤压

Jquery将div中的文本拖放到较小的div中

如果我发送的UDP数据包大小大于2个较小的MTU,会发生什么情况?