Ziank的技术博客

todayView组件的高度处理问题

最近在我们的应用里添加了一个TodayView的组件,结果却发现高度总是设置不正确,或者说是设置好了以后在第一次安装时会出现界面拉伸的问题,后来发现是由于在安装时,底部会自动增加大约40个点的高度,导致界面拉伸或者是位置不正确。

位置不正确的图片

为此我们查了不少资料,最后发现只是一个很简单地设置问题,是由于系统默认的todayView的偏移量为

1
defaultMarginInsets = (top = 0, left = 47, bottom = 39, right = 0);

所以只需要简单地修改这个偏移量,就能够解决该问题。对偏移量的修改应该在方法widgetMarginInsetsForProposedMarginInsets中进行修改:

1
2
3
4
5
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets
{
defaultMarginInsets.bottom = 0;
return defaultMarginInsets;
}

修改之后,todayView的界面就正常了。
修改后的todayViewExtension截图