iOS Today 扩展神秘高度
Posted
技术标签:
【中文标题】iOS Today 扩展神秘高度【英文标题】:iOS Today Extension Mystery Height 【发布时间】:2015-01-31 04:47:16 【问题描述】:我目前正在开发 ios Today Extension,但我遇到了扩展高度的问题。我已经从头开始尝试过多次,但我似乎无法弄清楚额外高度的来源。自动布局我在哪里出错了。谢谢。
故事板视图:
场景视图:
尺寸检查器:
结果:
我也尝试使用以下内容,它是这样说的:
override func viewDidLoad()
super.viewDidLoad()
self.preferredContentSize = CGSizeMake(0, 100);
编辑:这可能是 iOS 错误吗?
我已经为此苦苦思索了一段时间,但我注意到模拟器和物理设备上有一个可重复的模式。如果我在模拟器上重置内容和设置,然后在其上运行 Today Extension,它会填满整个空间(即使它不遵守我的 100 个高度限制),但是一旦我“停止”运行它,视图就会缩小到 100高度,底部有这个额外的填充。有没有其他人经历过这个?这是一个错误还是我造成的?
第一次运行,同时“运行”:
在“停止”和随后的“运行”之后
【问题讨论】:
我注意到,每当我进行更改时,如果我在模拟器上重置内容和设置,更改似乎可以正常工作。每当我尝试再次运行 Today Extension(不重置)时,它会缩小视图的高度,直到我再次重置内容和设置。 你有没有想过这个问题?我有完全相同的问题。将扩展程序删除并重新添加到“今日”屏幕会修复它,直到您下次运行或刷新它。 @bgolson - 不,我一直无法弄清楚。我把它归结为系统错误。 感谢您的跟进!终于找到答案了,贴在下面。 【参考方案1】:终于找到问题了!苹果有荒谬的默认边距,尤其是在底部。更改它们的唯一方法是实现 widgetMarginInsetsForProposedMarginInsets 方法。这是快速代码:
func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets
return UIEdgeInsetsZero
【讨论】:
UIEdgeInsetsZero
也可以使用。它是一个常量,表示所有设置为零的字段。
@bgolson 非常感谢!!以上是关于iOS Today 扩展神秘高度的主要内容,如果未能解决你的问题,请参考以下文章
适用于 iOS Today 扩展的 Firebase 分析(小部件扩展)