線程間通訊

主線程實現(xiàn)

定義屬性

/// 根視圖是滾動視圖

@property(nonatomic,strong)UIScrollView*scrollView;/// 圖像視圖@property(nonatomic,weak)UIImageView*imageView;/// 網(wǎng)絡下載的圖像@property(nonatomic,weak)UIImage*image;

loadView

加載視圖層次結(jié)構(gòu)

用純代碼開發(fā)應用程序時使用

功能和Storyboard&XIB是等價的

如果重寫了loadView,Storyboard&XIB都無效

- (void)loadView {? ? _scrollView = [[UIScrollViewalloc] init];? ? _scrollView.backgroundColor= [UIColororangeColor];self.view= _scrollView;UIImageView*iv = [[UIImageViewalloc] init];? ? [self.viewaddSubview:iv];? ? _imageView = iv;}

viewDidLoad

視圖加載完成后執(zhí)行

可以做一些數(shù)據(jù)初始化的工作

如果用純代碼開發(fā),不要在此方法中設置界面 UI

- (void)viewDidLoad {? ? [superviewDidLoad];// 下載圖像[selfdownloadImage];}

下載網(wǎng)絡圖片

- (void)downloadImage {

// 1. 網(wǎng)絡圖片資源路徑

NSURL*url = [NSURLURLWithString:@"http://c.hiphotos.baidu.com/image/pic/item/4afbfbedab64034f42b14da1aec379310a551d1c.jpg"];

// 2. 從網(wǎng)絡資源路徑實例化二進制數(shù)據(jù)(網(wǎng)絡訪問)

NSData*data = [NSDatadataWithContentsOfURL:url];//

3. 將二進制數(shù)據(jù)轉(zhuǎn)換成圖像UIImage*image = [UIImageimageWithData:data];

// 4. 設置圖像self.image= image;}

設置圖片

- (void)setImage:(UIImage*)image {// 1. 設置圖像視圖的圖像self.imageView.image= image;// 2. 按照圖像大小設置圖像視圖的大小[self.imageViewsizeToFit];// 3. 設置滾動視圖的 contentSizeself.scrollView.contentSize= image.size;}

設置滾動視圖的縮放

1> 設置滾動視圖縮放屬性

// 1> 最小縮放比例self.scrollView.minimumZoomScale=0.5;

// 2> 最大縮放比例self.scrollView.maximumZoomScale=2.0;

// 3> 設置代理self.scrollView.delegate=self;

2> 實現(xiàn)代理方法 - 告訴滾動視圖縮放哪一個視圖

- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView {returnself.imageView;}

3> 跟蹤scrollView縮放效果

- (void)scrollViewDidZoom:(UIScrollView*)scrollView {NSLog(@"%@", NSStringFromCGAffineTransform(self.imageView.transform));}

線程間通訊

在后臺線程下載圖像

[selfperformSelectorInBackground:@selector(downloadImage) withObject:nil];

在主線程設置圖像

[selfperformSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:NO];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 線程間通訊 線程間通信的體現(xiàn):1個線程傳遞數(shù)據(jù)給另1個線程 ,在1個線程中執(zhí)行完特定任務后,轉(zhuǎn)到...
    VickyLanLan閱讀 266評論 1 1
  • 廢話不多說,直接上干貨 ---------------------------------------------...
    小小趙紙農(nóng)閱讀 3,645評論 0 15
  • *7月8日上午 N:Block :跟一個函數(shù)塊差不多,會對里面所有的內(nèi)容的引用計數(shù)+1,想要解決就用__block...
    炙冰閱讀 2,711評論 1 14
  • UIView+SGFrame.h #import @interface UIView (SGFrame) @pro...
    超越時空的思念_8a22閱讀 1,958評論 1 1
  • 戰(zhàn)略:廣泛的運營能力,和對技術(shù)的深刻理解,來創(chuàng)造長期價值。 投資:實際上就是你做了調(diào)研以后,你有一種信念。任何...
    不惑_cf78閱讀 444評論 0 0

友情鏈接更多精彩內(nèi)容