iPhoneにCNNアプリがあります。
開くと「トップ ストーリー」が表示され、テーブルの一番上に常に写真が表示されます。
指を下にスライドさせると、画像が拡大/ズームされます。
より多くの行を表示するために指を上にスライドすると、表の行と同じ速度で画像が上に移動するのではなく、表の行が画像が画面から消えるよりも速く移動します。
このエフェクトのやり方を知っていますか?
iPhoneにCNNアプリがあります。
開くと「トップ ストーリー」が表示され、テーブルの一番上に常に写真が表示されます。
指を下にスライドさせると、画像が拡大/ズームされます。
より多くの行を表示するために指を上にスライドすると、表の行と同じ速度で画像が上に移動するのではなく、表の行が画像が画面から消えるよりも速く移動します。
このエフェクトのやり方を知っていますか?
UIScrollView contentInsetにUIImageViewが必要で、トップ インセットをゼロ以上に設定します。
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
UIImage *topImage = [UIImage imageNamed:@"photo"];
topImage.frame = CGRectMake(0, -topImage.frame.size.height, topImage.frame.size.width, topImage.frame.size.height);
[scroll addSubview:topImage];
self.contentInset = UIEdgeInsetsMake(topImage.frame.size.height, 0, 0, 0);
その後、UIScrollViewのcontentOffsetを次のように設定します
scroll.contentOffset = CGPointMake(0, topImage.frame.size.height);
したがって、内部に画像を含むUIScrollViewがあります。UIScrollView にデリゲートを追加して、 を待つだけです- (void)scrollViewDidScroll:(UIScrollView *)scrollView
。このメソッドが呼び出された直後に、画像のサイズを変更し、contentInset を変更します。
このアドバイスは、同様の方法でUITableViewに適用するか、 UIScrollViewでカテゴリを作成することもできます。
また、このプロジェクトhttps://github.com/samvermette/SVPullToRefreshのコードを読むことをお勧めします。また、UITableViewとその上部にビューを追加することについてもです
私の推測では、テーブルビューの一番上のセル (またはセル) は透明であり、テーブルビューのスクロール方法に基づいてサイズ変更/移動されるテーブルビューの背後に UIImageView があります。
テーブル ビューは UIScrollView を継承するため、そのデリゲート (UITableViewDelegate) は、ユーザーがスクロール ビューをスクロールしたときに通知される UIScrollViewDelegate プロトコルを継承します。- (void)scrollViewDidScroll:(UIScrollView *)scrollView
これらの通知を受け取るメソッドを実装contentOffset
し、スクロール ビューでプロパティを確認します。
インターフェイス ビルダーで必要な UI を構築するには、独自のテーブル ビュー コントローラーを実装する必要がある場合があります。
自分で実装する必要がある完全なカスタム効果のようです。正しい方向に向けるために、最初にインスタンスから送信されたメッセージcontentOffset
の変化を監視します。scrollViewDidScroll:
myTableView
contentOffset.y < 0
[myImageView setValue:[NSNumber numberWithFloat:scaleIncrementAmountFloat] forKeyPath:@"transform.scale"];