iOS7状态栏就像本机天气应用程序一样

有谁知道如何从原生iOS7天气应用程序重现类似的效果?

基本上,状态栏会inheritance下面的视图背景,但内容不会显示。 此外,在状态栏的20像素高度之后绘制1像素线,仅当一些内容被底层时。

在此处输入图像描述

最好的方法是通过视图的clipSubview来实现它。 您将内容放入视图中并对左/右/底部和高度进行约束。 您检查滚动视图的高度是单元格具有负位置,此时您开始更改内容(剪辑)视图的高度以获得所需的效果。

这是一个真正的应用程序,您可以从www.fancyinteractive.com下载并查看。 下次更新时,此function即将推出。

- (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; } 

起始页

滚动第一项

滚动第二个itme

您可以通过将掩码设置为表视图的图层来完成此操作。 但是,您将无法在单元格内渲染动画,但您可以在表格视图后面自己执行这些动画,并使用表格视图的scrollview委托方法跟踪它们的移动。

以下是CALayer面具的一些信息: http : //evandavis.me/blog/2013/2/13/getting-creative-with-calayer-masks