有谁知道如何从原生 iOS7 天气应用程序中重现类似的效果?
基本上,状态栏继承了下面视图的背景,但内容不显示。
此外,仅当某些内容位于下方时,才会在状态栏 20 像素高度之后绘制 1 像素线。
最好的办法是通过视图的clipSubview来实现。您将内容放入视图中并对左/右/底部和高度进行限制。您检查的滚动视图上的高度是单元格具有负位置,此时您开始更改内容(剪辑)视图的高度以获得所需的效果。
这是一个真正的应用程序,您可以从 www.fancyinteractive.com 下载并查看。此功能将在下次更新时推出。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSArray *visibleCells = [convertorsTableView visibleCells];
if (visibleCells.count) {
for (CVConverterTableViewCell *cell in visibleCells) {
CGFloat positionYInView = [convertorsTableView convertRect:cell.frame toView:self.view].origin.y;
[self clipLayoutConstraint:cell.clipHeightLayoutConstraint withPosition:positionYInView defaultHeight:cell.frameHeight];
[cell.converterLabel layoutIfNeeded];
[cell.iconImageView layoutIfNeeded];
}
}
[self checkStatusBarSeperator:scrollView.contentOffset.y];
}
- (void)clipLayoutConstraint:(NSLayoutConstraint *)constraint withPosition:(CGFloat)position defaultHeight:(CGFloat)defaultHeight {
if (position < 0) {
constraint.constant = (defaultHeight - -position - 20 > 10) ? defaultHeight - -position - 20 : 10;
} else
constraint.constant = defaultHeight;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)