標籤:http io os ar for 2014 on ad 時間
案例:(在模擬器中按住option鍵,點擊滑鼠就會出現縮放的手勢)
(1)在ViewController.m中:
——縮放東西是UIScrollView除了滾動之外的另一個功能,所以需要縮放的東西應該先放在UIScrollView裡,比如此處的imageView;
——而我們在縮放時候,scrollView自己是不知道我們要縮放哪個控制項的,所以scrollView需要一個代理來告訴它,這個代理一般就是我們的控制器;
——而控制器要成為它的代理就必須遵守它的協議;
——控制器在接受協議後,就可以調用這個方法,來告訴scrollView是哪一個控制項需要被縮放;
——而此時還不可以縮放,因為我們這個scrollView的最大最小縮放比例沒有設定,縮放沒邊界的話是會出大事的。
#import "ViewController.h"@interface ViewController ()<UIScrollViewDelegate>//第一步,遵守協議@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;@property (weak, nonatomic) IBOutlet UIImageView *imageView;@end@implementation ViewController- (void)viewDidLoad { //self.scrollView.contentSize=CGSizeMake(892, 632); self.scrollView.contentSize=self.imageView.frame.size; //設定縮放最大最小比例 self.scrollView.maximumZoomScale=2.0; self.scrollView.minimumZoomScale=0.2; //設定UIScrollView的代理 self.scrollView.delegate=self;//第二步,把自己設定成代理 [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.}//實現這個方法,其實代理要做的事情就是返回要縮放的那個控制項給scrollView自己去處理-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ return self.imageView;}@end
(2)如何在模擬器中模仿縮放手勢?
按住option鍵,點擊滑鼠就會出現縮放的手勢,拖動就相當於縮放。
(3)說明
代理,最重要的作用就是監聽。即這個控制項發生什麼變化了,一般都可以直接通知代理,代理可以第一時間知道,並且代理可以做出相應地響應。
當然,這個協議裡地方法有些是必須實現,就是是選擇性實行。
【iOS開發-54】案例學習:通過UIScrollView的縮放圖片功能練習代理模式的具體實現