- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我基于我的 UIView 子类中的框架使用 CALayer 做了一些绘图,我需要在设备旋转时更新线,但在 traitCollectionDidChange 中,框架仍然保持旋转前的值。有没有办法在旋转后获取帧的更新值?
我的绘图代码看起来像这样,在它的 View Controller 的 traitCollectionDidChange 中调用:
func setup() {
layer.sublayers?.removeAll()
let xAxisLine = UIBezierPath()
xAxisLine.move(to: CGPoint(x: 100, y: frame.height))
xAxisLine.addLine(to: CGPoint(x: bounds.width, y: frame.height))
let xAxisLayer = CAShapeLayer()
xAxisLayer.path = xAxisLine.cgPath
xAxisLayer.lineWidth = 2
xAxisLayer.fillColor = UIColor.clear.cgColor
xAxisLayer.strokeColor = UIColor.black.cgColor
layer.addSublayer(xAxisLayer)
}
这部分绘制了我的自定义图形的 X 轴,但更重要的是帧值是旋转之前的帧值,因此整个图形的位置和大小都不合适。
在 View Controller 中,我通过以下方式调用它:
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
barView.setup()
}
最佳答案
您不会更新您的绘图,您总是在方向改变时向您的 View 添加一个新层。
您应该在 viewDidLoad
中创建层并保存对它的引用。在 traitCollectionDidChange
中,您只需为图层分配一个新路径。
关于ios - UIView 框架在 traitCollectionDidChange 期间未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40992716/
我的应用程序有一个错误。这个错误的原因是 UIViewController 在 UI 主题从浅色变为深色或从深色变为深色后更新 UITableView 单元格。 我可以修复这个bug,这个bug本身不
我发现当将应用程序放入后台时,traitCollectionDidChange 方法被调用了两次,并显示特征集合在实际上没有进行任何更改时会有所不同。 - (void)traitCollectionD
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.tr
我正在努力采用多任务处理来支持应用程序的 Split View,但我发现当应用程序位于右侧时未调用 traitCollectionDidChange。 有人知道吗? 最佳答案 您可以在您的 ViewC
在我的应用程序中,我允许用户覆盖设备上设置的外观。如果他们想覆盖系统范围的外观,这是处理更新 UI 的类: class UserInterfaceStyleController { init() {
我基于我的 UIView 子类中的框架使用 CALayer 做了一些绘图,我需要在设备旋转时更新线,但在 traitCollectionDidChange 中,框架仍然保持旋转前的值。有没有办法在旋转
UITraitEnvironment 的文档说: This method is called automatically when the current trait collection chang
我有一个包含 TableView 并显示自定义单元格的 View Controller 。我正在尝试使用 traitCollectionDidChange 方法(在单元格子类中)对内容大小类别更改使用
我有一个包含 TableView 并显示自定义单元格的 View Controller 。我正在尝试使用 traitCollectionDidChange 方法(在单元格子类中)对内容大小类别更改使用
您知道为什么即使没有 Size Class 更改也会调用 traitCollectionDidChange 吗? 选择一个 UILabel,我在 Storyboard属性检查器/已安装 UILabel
在我的例子中,我正在根据 traitCollection.horizontalSizeClass 更改我的 View 布局这是我的代码片段。 override func traitCollecti
我有一个 swift 项目,其中包含一个使用 Size Classes 的 Storyboard,一个符合 UITraitEnvironment 协议(protocol)并实现了函数 traitCol
我的应用程序使用自定义颜色主题,但 iOS13 用户可以选择进入以下暗模式。 我以为我可以简单地在 ViewController's 中更新我的颜色traitCollectionDidChange()
我想支持类似Safari的布局,在水平规则的环境下,按钮显示在导航栏上,但在水平紧凑的环境下,有些按钮在导航栏上,有些按钮在工具栏上。 这就是我的 traitCollectionDidChange o
UITraitEnvironment 的文件说: This method is called automatically when the current trait collection chang
我希望 UIImageView 中的图像为我们提供一个不同的图像文件,该文件经过裁剪以在方向从纵向更改为横向时正确填充横向模式。以下所有代码都在扩展 UIViewController 的类中定义。 当
我用 UISplitViewController .当用户将他的 iPhone 6 Plus 旋转为纵向并且不再看到任何细节时,我想显示一个空的选择细节场景。 (所有其他设备的行为都可以预测。只有 6
TL;DR 在 Xcode 11 上 一些 应用程序布局因 iOS 13 而损坏(以下操作系统都可以)。当我进入后台并返回时,它是固定的...除非 UIUserInterfaceStyle 设置为 L
我是一名优秀的程序员,十分优秀!