为什么点击 Today Notification Widget 中的按钮会导致整个视图向左移动?
Why tapping a button in Today Notification Widget causes whole view move to left?
我做了一个Today Notification Widget
,我用了AutoLayout
。
当我按下数字按钮时,整个视图向左移动。我不知道为什么。
为什么点击按钮时视图会向左移动?是来自 AutoLayout
还是普遍问题?
之前touch
touch
之后
图片1
图片2
图3
这似乎是您的实施有问题。除非您在点击按钮时更改某些位置或自动布局约束,否则没有理由发生这种情况。另外,您可能想看看 widgetMarginInsetsForProposedMarginInsets
函数并且您已经从 NCWidgetProviding
继承:
class MainViewController: UIViewController, NCWidgetProviding {
func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
return UIEdgeInsetsZero
}
}
...无论如何,你的问题真的很广泛,也许你会想要添加一些来源以获得进一步的见解。
希望对您有所帮助!
UPDATE:
问题是,当您输入一些文本时,该视图的边距会变大,这会做一些奇怪的事情,因为您缺少一些与视图相关的约束(您的 UITextField
/UILabel
) 为您的右侧前导边距约束赋予价值。
如果你完全隔离,右边部分和左边部分,也许把它们放在不同的视图中。您应该能够解决此问题,因为左视图内的任何更改都保留在左视图中。
其他方法是删除所有约束并重新开始,手动设置约束,不要让 xcode 为您完成这项工作
我做了一个Today Notification Widget
,我用了AutoLayout
。
当我按下数字按钮时,整个视图向左移动。我不知道为什么。
为什么点击按钮时视图会向左移动?是来自 AutoLayout
还是普遍问题?
之前touch
touch
图片1
图片2
图3
这似乎是您的实施有问题。除非您在点击按钮时更改某些位置或自动布局约束,否则没有理由发生这种情况。另外,您可能想看看 widgetMarginInsetsForProposedMarginInsets
函数并且您已经从 NCWidgetProviding
继承:
class MainViewController: UIViewController, NCWidgetProviding {
func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
return UIEdgeInsetsZero
}
}
...无论如何,你的问题真的很广泛,也许你会想要添加一些来源以获得进一步的见解。
希望对您有所帮助!
UPDATE:
问题是,当您输入一些文本时,该视图的边距会变大,这会做一些奇怪的事情,因为您缺少一些与视图相关的约束(您的 UITextField
/UILabel
) 为您的右侧前导边距约束赋予价值。
如果你完全隔离,右边部分和左边部分,也许把它们放在不同的视图中。您应该能够解决此问题,因为左视图内的任何更改都保留在左视图中。
其他方法是删除所有约束并重新开始,手动设置约束,不要让 xcode 为您完成这项工作