小胖說事37-----iOS基礎知識之UIScrollview的代理和Build Active Architecture Only屬性

總述:今天對UIScrollview的代理記憶有點模糊,所以查了一下文檔,並記錄下來;還有就是對於Xcode編譯打包時候的Build Active Architecture Only屬性的理解也記錄下來,畢竟,好記性不如爛筆頭,O(∩_∩)O哈哈哈~

1.scrollview的代理:

//只要滾動了就會觸發
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;   
{
//    NSLog(@" scrollViewDidScroll");
    NSLog(@"ContentOffset  x is  %f,yis %f",scrollView.contentOffset.x,scrollView.contentOffset.y);
}
//開始拖拽視圖
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;   
{
   NSLog(@"scrollViewWillBeginDragging");
}
//完成拖拽
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; 
{
   NSLog(@"scrollViewDidEndDragging");
}
//將開始降速時
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;   
{
   NSLog(@"scrollViewWillBeginDecelerating");
}

//減速停止了時執行,手觸摸時執行執行
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;   
{
   NSLog(@"scrollViewDidEndDecelerating");
}
//滾動動畫停止時執行,代碼改變時出發,也就是setContentOffset改變時
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;
{
   NSLog(@"scrollViewDidEndScrollingAnimation");
}
//設置放大縮小的視圖,要是uiscrollview的subview
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;   
{
   NSLog(@"viewForZoomingInScrollView");
    return viewA;
}
//完成放大縮小時調用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale; 
{
    viewA.frame=CGRectMake(50,0, 100, 400);
   NSLog(@"scale between minimum and maximum. called after any 'bounce' animations");
}// scale between minimum and maximum. called after any 'bounce' animations

//如果你不是完全滾動到滾軸視圖的頂部,你可以輕點狀態欄,那個可視的滾軸視圖會一直滾動到頂部,那是默認行爲,你可以通過該方法返回NO來關閉它
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;   
{
    NSLog(@"scrollViewShouldScrollToTop");
   return YES;
}

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;     
{
    NSLog(@"scrollViewDidScrollToTop");
}

2.對Build Active Architecture Only屬性的理解

這個屬性設置爲yes,是爲了debug的時候編譯速度更快,它只編譯當前的architecture版本。

而設置爲no時,會編譯所有的版本。

這個是設備對應的architecture:

armv6:iPhone 2G/3G,iPod 1G/2G

armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G

armv7s:iPhone5, iPod5

編譯出的版本是向下兼容的,比如你設置此值爲yes,用iphone4編譯出來的是armv7版本的,iphone5也可以運行,但是armv6的設備就不能運行。

所以,一般debug的時候可以選擇設置爲yes,release的時候要改爲no,以適應不同設備。

大家可以加頭部的QQ羣一起交流學習~
發佈了164 篇原創文章 · 獲贊 1 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章