有誰知道如何從本機iOS7天氣應用程序重現類似效果?iOS7狀態欄像原生天氣應用程序
基本上,狀態欄會繼承下面的視圖背景,但內容不會顯示出來。 此外,只有在某些內容處於底層時,纔會在狀態欄的20像素高度之後繪製1像素線。
有誰知道如何從本機iOS7天氣應用程序重現類似效果?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;
}
什麼是clipHeightLayoutConstraint – AVEbrahimi
@Avebrahimi希望我幫助你通過電子郵件。 – invoodoo
您可以通過設置掩碼錶視圖的層做到這一點。但是,您將無法在單元格中呈現動畫,但可以在表格視圖後面自行完成這些動畫,並使用表格視圖的scrollview委託方法跟蹤它們的移動。
這裏是CALayer
口罩一些信息: http://evandavis.me/blog/2013/2/13/getting-creative-with-calayer-masks
我的猜測是,它沒有具體狀態欄的效果,而是他們正在做一個自定義的過渡時的UITableView滾動了(基本上是透明狀態欄)。 – Ian
這就是我的想法。 但是,你怎麼能隱藏/掩蓋細胞內容? – DZenBot
你能否達到效果,我也在尋找答案。 – Mark