UIscroollViewの基本的な使い方横スクロール

4963 ワード

参考シール1:
UIscroollViewの基本的な使い方横スクロール
2012-05-07 14:13:51|分類:ios開発|ラベル:ios scrollview|番号大中小購読
 
come from:http://unmi.cc/use-uiscrollview
iPhone/iPadではUIscrollViewがよく使われていますが、ここでは最も簡単な例として、1つのScrollViewに3つのUIViewが入っています.これら3つのUIViewはそれぞれ異なる背景色を設定しており、ScrollViewでは1ページ1ページのスクロールが可能である.
このコードはUIViewControllerのviewDidLoadメソッドで実行されます.contentSizeなどの各FrameとScrollViewの重要なプロパティに注意してください.ScrollViewでページごとにスクロールするときに、1つのScrollViewの幅(横方向)または高さ(縦方向)を移動します.次の2枚の図を見てください.
  
1枚目の図は、属性contentOffsetで設定された2番目のViewが起努Viewで、真ん中が例えば左にスクロールする場合、デフォルトでスクロールバーが表示され、3枚目の図は赤いパネルにスクロールされ、各View間の隙間に注意して、View周囲の余白としても使用されます.
上の効果のコードは次のとおりです.詳細なコメントが追加されています.- ( void )viewDidLoad { [ super viewDidLoad];
  // ScrollView Frame, , , , , UIScrollView *scrollView = [[ UIScrollView alloc] initWithFrame:CGRectMake(50, 0, 210, 100)]; scrollView.backgroundColor = [ UIColor grayColor]; // ScrollView , View
  // ScrollView View,View 200 5 ScrollView UIView *view1 = [[ UIView alloc] initWithFrame:CGRectMake(5,5,200,90)]; view1.backgroundColor = [ UIColor redColor]; [scrollView addSubview:view1];
  // View, 5 ScrollView , View 10 UIView *view2 = [[ UIView alloc] initWithFrame:CGRectMake(215,5,200,90)]; view2.backgroundColor = [ UIColor greenColor]; [scrollView addSubview:view2];
  // View UIView *view3 = [[ UIView alloc] initWithFrame:CGRectMake(425,5,200,90)]; view3.backgroundColor = [ UIColor blueColor]; [scrollView addSubview:view3];
  [ self .view addSubview:scrollView];
  // , , View , // View , 200x3+5+10+10+5=630 // ScrollView , , scrollView.contentSize = CGSizeMake(630, 100);
  // ScrollView , ScrollView scrollView.contentOffset = CGPointMake(210, 0);
  // , , scrollView.pagingEnabled = YES ; }
 
    
 


UIViewに対応するUIViewControllerがあるように、UIScrollViewには対応するUIScrollViewControllerはありませんが、UIScrollViewにもイベントがあります.ただし、UIScrollViewのDelegateを自分で指定する必要があります.このDelegateはプロトコルUIScrollViewDelegateの方法を適用します.
ScrollViewに関するいくつかのプロパティは、Xcodeコードのプロンプトに表示されるか、Interface Builderに表示されるか、各プロパティのデフォルト値が何であるかが一目でわかります.次の図はXibのScrollViewのプロパティパネルです.
参考:1.UIscroollViewの原理の詳細
本リンクhttp://unmi.cc/use-uiscrollviewウグイスUnmi Blogより
 
参考シール2:
AppStore詳細ページのようなプレビューとページング付きの画像閲覧機能を実現
By  looyao on 
2012年6月21日出典:looyao's blog
タイトルは少し分からないかもしれませんが、確かに、私は本当に良いタイトルを抽象するのは難しいです.次はシーンを詳しく説明します.AppStoreを開き、詳細なアプリケーションページにアクセスすると、Appのスクリーンショットが表示され、左と右にそれぞれ隣接する画像の一部が表示され、実現が簡単そうに見えますが、UIscrollViewを使えばいいのですが、UIscrollViewのpagingEnabledが設定されている場合は、多くの考慮が必要です.
1.まずUIScrollViewのwidth値を考慮する.
UIscroollViewのpagingEnabledがYESの場合、UIscroollView自体の幅を自動的にスクロールするたびに(横スクロールを実現する)、スクロールが終了するたびに1つのピクチャを中間の位置に配置する必要がある.下の私のマークしたスクリーンショットを见て(実は私は海贼のコントロールで、うん.).
 
UIScrollView 的基本用法 横向滚动_第1张图片  
UIscroollViewのwidth値はzであるべきであり、1回のページング後に残りのx画素幅が見える.表示する画像の幅を224とし、各画像間隔を20とすると、x+y=224 z=x+y+20=244となり、zはUIscrollViewの幅となる.
UIscroollViewを中央に置き、clipsToBoundsを設定ことでUIscroollViewを超える部分を表示する.
_scrollView.clipsToBounds = NO;
 
これで基本的な効果が出るが、UIscrollViewを超える部分は見えるが、この部分でUIscrollViewをスライドすることはできないという問題がある.
2.UIscrollViewを超える部分がスライドをトリガしないという問題を解決する.
これを解決する方法はUIViewの-hitTest:withEvent:方法を利用することです.まずクラスをUIViewから継承し、ピクチャをスクロールするUIscrollViewをこのカスタムビューに書き換え、UIViewの–hitTest:withEvent:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
return _scrollView;//すべてのイベントをUIscroollViewに渡して処理することで、UIscroollViewを超えた部分もスライドをトリガーすることができます.
}
これですべての機能が実現し、コードはgithubに提出されました.com、完全なコードが必要な場合はここをクリックしてください.
 
第2篇は确かにとても大きい助けをあげて、転载した后に博主に感谢します