国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[ios]scrollView實現移動與縮放

2019-11-14 19:49:31
字體:
來源:轉載
供稿:網友

實現滑動

1.在viewDidLoad中對scrollview的contentSize屬性賦值 告訴他滑動范圍。

 

實現縮放

1.在storyboard的scrollview的attribute標簽中設置zoom的范圍。

2.實現一個UIScrollViewDelegate[scrollview的委托],并將其在viewDidLoad中傳給scrollview

3.實現UIScrollViewDelegate 需要復寫- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

這個方法返回需要zoom的view。

 

注意:如果使用縮放  且縮放的view大于屏幕

則必須要設置所需要縮放的view的fram 否則 zoom過程中會將view的frame改變 從而改變到了 image的size 導致scrollView 的contentSize 改變 影響滑動效果。 

所以每次使用zoom的時候 需要變化的view需要設置它的frame.szie與它的內容大小綁定[如imageView 的image.size]

 

 

簡要代碼:

 

Oc代碼 復制代碼 收藏代碼
  1. //  
  2. //  ISViewController.m  
  3. //  ImageInScrollView  
  4. //  
  5. //  Created by liu poolo on 12-10-12.  
  6. //  Copyright (c) 2012年 liu poolo. All rights reserved.  
  7. //  
  8.   
  9. #import "ISViewController.h"  
  10.   
  11. @interface ISViewController ()<UIScrollViewDelegate>  
  12.   
  13. @end  
  14.   
  15. @implementation ISViewController  
  16. @synthesize scrollView=_scrollView;  
  17. @synthesize imageView=_imageView;  
  18. - (void)viewDidLoad  
  19. {  
  20.     [super viewDidLoad];  
  21.       
  22.     //設置UIScrollViewDelegate  
  23.     self.scrollView.delegate=self;  
  24.       
  25.       
  26.     self.scrollView.contentSize=self.imageView.image.size;  
  27.     self.imageView.frame=CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);  
  28.     
  29.   
  30.   
  31.   
  32.   
  33.   
  34.   
  35.   
  36.   
  37.   
  38.   
  39.  self.imageView.frame=CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);  
  40.   
  41.     //如果不加這句的話  
  42.   
  43.     //那么正常拖動是可以的,但是如果zoom了 就會有問題  
  44.   
  45.     //zoom發生后會把frame變成當前顯示大小[imageview默認大小 屏幕顯示大小 如是全屏則就是全屏大小] zoom變化導致frame同步改變了image的size 大小為frame大小  
  46.   
  47.     //image 的size改變后導致self.scrollView.contentSize 變成了frame的大小  從而contentSize變小了 無法實現正常拖動。  
  48.   
  49.     //然后根據zoom縮放比例變化。而不是根據實際圖片大小。這么導致zoom后就無法拖動了[因為frame大小]  
  50.   
  51.   
  52.   
  53.   
  54.       
  55.   
  56.   
  57. }  
  58.   
  59. - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView  
  60.     //返回需要zoom的view  
  61. {  
  62.     //如果想要scrollview 實現縮放 則需要給scrollview.delegate 對一個UIScrollViewDelegate 對象  
  63.     //且 此對象需要覆寫viewForZoomingInScrollView 方法。  
  64.     //總結:只有 scrollview的delegate復寫了viewForZoomingInScrollView scrollview才會縮放。  
  65.     return self.imageView;  
  66.       
  67. }  
  68.   
  69. - (void)didReceiveMemoryWarning  
  70. {  
  71.     [super didReceiveMemoryWarning];  
  72.     self.scrollView=nil;  
  73.     self.imageView=nil;  
  74. }  
  75.   
  76. @end  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 常熟市| 千阳县| 兴安盟| 玉树县| 九龙城区| 南华县| 谢通门县| 余江县| 怀化市| 德昌县| 兴仁县| 洛南县| 山东省| 加查县| 聂荣县| 遂平县| 米脂县| 卫辉市| 南和县| 平和县| 亚东县| 商都县| 玉田县| 秭归县| 瑞丽市| 剑川县| 特克斯县| 改则县| 沁阳市| 金湖县| 秦皇岛市| 温州市| 容城县| 茂名市| 安达市| 建始县| 长垣县| 理塘县| 宕昌县| 东辽县| 双鸭山市|