Ios-ui-elements-scrollview

提供:Dev Guides
移動先:案内検索

iOS-スクロールビュー

スクロールビューの使用

スクロールビューは、画面のサイズを超えるコンテンツを表示するために使用されます。 イメージビュー、ラベル、テキストビュー、さらに別のスクロールビューなど、他のすべてのUI要素を含めることができます。

重要なプロパティ

  • contentSize
  • contentInset
  • contentOffset *代表者

重要な方法

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

重要なデリゲートメソッド

- (void)scrollViewDidEndDecelerating:(UIScrollView* )scrollView
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

次のようにViewController.hを更新します-

*<UIScrollViewDelegate>* を追加し、* ViewController.h。*に示すようにスクロールビューインスタンスを宣言して、クラスをスクロールビューデリゲートプロトコルに準拠させます。
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIScrollViewDelegate> {
   UIScrollView *myScrollView;
}
@end

カスタムメソッドaddScrollViewを追加します。

-(void)addScrollView {
   myScrollView = [[UIScrollView alloc]initWithFrame:
   CGRectMake(20, 20, 280, 420)];
   myScrollView.accessibilityActivationPoint = CGPointMake(100, 100);
   imgView = [[UIImageView alloc]initWithImage:
   [UIImage imageNamed:@"AppleUSA.jpg"]];
   [myScrollView addSubview:imgView];
   myScrollView.minimumZoomScale = 0.5;
   myScrollView.maximumZoomScale = 3;
   myScrollView.contentSize = CGSizeMake(imgView.frame.size.width,
   imgView.frame.size.height);
   myScrollView.delegate = self;
   [self.view addSubview:myScrollView];
}

-

「AppleUSA1.jpg」という名前の画像をプロジェクトに追加する必要があります。これは、プロジェクトファイルがリストされているナビゲータエリアに画像をドラッグすることで実行できます。 画像のスクロールを確認するには、画像の解像度がデバイスよりも高い必要があります。

ViewController.mでscrollViewデリゲートを実装します

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
   return imgView;
}

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
   NSLog(@"Did end decelerating");
}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
  //NSLog(@"Did scroll");
}

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView
   willDecelerate:(BOOL)decelerate {
   NSLog(@"Did end dragging");
}

-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
   NSLog(@"Did begin decelerating");
}

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
   NSLog(@"Did begin dragging");
}

次のようにViewController.mのviewDidLoadを更新します-

(void)viewDidLoad {
   [super viewDidLoad];
   [self addScrollView];
  //Do any additional setup after loading the view, typically from a nib
}

出力

アプリケーションを実行すると、次の出力が得られます。 スクロールビューをスクロールすると、画像の残りの部分を見ることができます。

iOSチュートリアル