亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

一個方法搞定iOS下拉放大及上推縮小

2020-07-26 03:17:48
字體:
來源:轉載
供稿:網友

下面這種效果在ios應用中很常見:

實現思路:

1、創建頭部的視圖和tableview,需要注意的是tableview要設置contentInset,contentInsent 的頂部要和頭部視圖的背景圖的高度一樣,否則會有空隙(或是有遮擋)。

myTableView.contentInset = UIEdgeInsetsMake(headRect.size.height-navHeight-navHeight, 0, 0, 0);

2、對頭部視圖的背景圖片的尺寸進行處理,當然,你也可以直接找一個適合尺寸的圖片,就不用處理圖片了,為了增加程序的擴展性,我就隨便選了張圖,并進行圖片尺寸處理。

 UIImage * image = [UIImage imageNamed:name]; UIImage * newImg = [self image:image byScalingToSize:self.bounds.size]; backgroundView.image = newImg; backgroundView.clipsToBounds = YES;//切掉圖片多余的部分
//處理圖片方法- (UIImage *)image:(UIImage*)image byScalingToSize:(CGSize)targetSize {  UIImage *sourceImage = image;  UIImage *newImage = nil;  UIGraphicsBeginImageContext(targetSize);  CGRect thumbnailRect = CGRectZero;  thumbnailRect.origin = CGPointZero;  thumbnailRect.size.width = targetSize.width;  thumbnailRect.size.height = targetSize.height;  [sourceImage drawInRect:thumbnailRect];  newImage = UIGraphicsGetImageFromCurrentImageContext();  UIGraphicsEndImageContext();  return newImage ;}

3.搞定了這些,準備工作就完成了,接下來,一個方法實現我們的下拉放大、上推縮小的功能,當然,重點和難點是邏輯,技術很easy。大家都知道UITableView是繼承UIScrollView的,利用UIScrollView的代理方法- (void)scrollViewDidScroll:(UIScrollView *)scrollView;來實現。

下拉放大

在這個方法中,我們將功能分為兩部分,一個是下拉放大,這個是比較容易的,就是對頭部視圖的背景圖進行放大,調整frame,需要注意的是在此需要調整圖片的顯示方式,因為下拉和上推中圖片顯示的方式是不同的,否則即使你調整了frame,也不會按frame來顯示的。

 _myView.backgroundView.contentMode = UIViewContentModeScaleToFill; _myView.backgroundView.frame = CGRectMake(offset_Y*0.5 , -navHeight, VCWidth - offset_Y, headRect.size.height - offset_Y);

上推移動縮小

這個就比較難理解了,當然,我說的是中間對frame的算法,我們將三個視圖分開說。

1.背景圖:先切換顯示模式,然后將y隨著tableview偏移移動到0,高度也是隨著tableview偏移,最終移動到需要的高度(Demo留的是44)

_myView.backgroundView.contentMode = UIViewContentModeTop;_myView.backgroundView.frame = CGRectMake(0 ,navHeight* offset_Y/(headRect.size.height-navHeight-navHeight)-navHeight; , VCWidth , headRect.size.height -(navHeight + navHeight* offset_Y/(headRect.size.height-navHeight-navHeight)-navHeight;) - offset_Y);

2.頭像:頭像需要隨著tableview的偏移而移動自身的位置,并且還要進行縮小。這里面就是一個線性方程的關系,和上面的的背景圖是一樣的。

CGFloat width = offset_Y*(40-(VCWidth / 4))/(headRect.size.height-navHeight-navHeight)+(VCWidth / 4);_myView.headView.frame =CGRectMake(0, 0, width,width);_myView.headView.layer.cornerRadius =width*0.5;_myView.headView.center = _myView.backgroundView.center;

3.簽名:簽名比較簡單,只要跟著頭像動就行,然后再根據偏移調整自己的透明度就行了。

_myView.signLabel.frame =CGRectMake(0, CGRectGetMaxY(_myView.headView.frame), VCWidth, 40);_myView.signLabel.alpha = 1 - (offset_Y*3 / (headRect.size.height-navHeight-navHeight) /2);

好了,然后就大功告成了,里的的邏輯挺麻煩的,但有初中的數學水平就夠了,因為都只是簡單的線性關系。希望本文給大家學習IOS開發有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
正在播放欧美一区| 在线观看视频亚洲| 深夜福利一区二区| 亚洲精品久久久久久久久久久久| 欧美韩国理论所午夜片917电影| 国产成人avxxxxx在线看| 国产在线视频欧美| 欧美日韩精品在线观看| 高清欧美性猛交xxxx黑人猛交| 中文字幕9999| 国产日产欧美a一级在线| 日韩电影中文字幕| 亚洲福利视频网| 91黑丝高跟在线| 国产视频自拍一区| 在线激情影院一区| 国产精品999| 久久色精品视频| 国产精品视频免费观看www| 亚洲视频在线观看免费| 黑人巨大精品欧美一区二区| 色综合亚洲精品激情狠狠| 亚洲色图美腿丝袜| 午夜精品福利电影| 亚洲精品二三区| 亲爱的老师9免费观看全集电视剧| 精品国偷自产在线视频99| 欧美限制级电影在线观看| 最近2019年手机中文字幕| 国产精品极品美女在线观看免费| 国产精品久久一区| 亚洲美女福利视频网站| 日韩中文字幕亚洲| 热re99久久精品国产66热| 亚洲性猛交xxxxwww| 成人免费视频网| 亚洲一区二区三区视频播放| 日韩av在线最新| 国产美女被下药99| 久久精品99久久久久久久久| 中文字幕久热精品视频在线| 成人精品久久一区二区三区| 久久99精品久久久久久噜噜| 欧美日韩免费区域视频在线观看| 久久91亚洲人成电影网站| 色视频www在线播放国产成人| 亚洲综合社区网| 91久久精品国产91久久| 成人性生交大片免费看视频直播| 91久久嫩草影院一区二区| 亚洲欧美国产制服动漫| 成人福利免费观看| 91探花福利精品国产自产在线| 亚洲欧洲国产伦综合| 久久亚洲国产精品成人av秋霞| 91精品久久久久久久久久久久久| 国产精品在线看| 欧美成人午夜激情视频| 亚洲精品资源美女情侣酒店| 精品久久久国产精品999| 亚洲精品一区久久久久久| 91视频-88av| 国产精品户外野外| 国产一区二区三区视频在线观看| 国产精品日韩av| 久久免费高清视频| 国产成人欧美在线观看| 欧美一区二区三区免费视| 成人精品在线视频| 欧美诱惑福利视频| 亚洲欧洲自拍偷拍| 国产成人精品在线视频| 国产精品视频中文字幕91| 久久精品中文字幕电影| 日韩精品久久久久久福利| 热久久免费视频精品| 欧美性在线视频| 国产精品成人va在线观看| 久久人91精品久久久久久不卡| 国产精品女人久久久久久| 亚洲欧洲日本专区| 亚洲成年人影院在线| 精品久久久久久久久久| 国产精品亚洲第一区| 国产成人精品最新| 欧美午夜激情小视频| 7m精品福利视频导航| 国产精品盗摄久久久| 日韩av日韩在线观看| 国产精品流白浆视频| 精品视频一区在线视频| 日韩中文字在线| 中文字幕免费国产精品| 色偷偷偷亚洲综合网另类| 国产精品美女主播在线观看纯欲| 久久影院中文字幕| 456国产精品| 日韩精品一区二区视频| 亚洲综合精品一区二区| 亚洲国产精品成人精品| 欧美中文在线视频| 国产欧美日韩91| 国产在线精品成人一区二区三区| 国产色视频一区| 91国产精品91| 日韩亚洲成人av在线| 国产成人精品一区二区三区| 98精品国产高清在线xxxx天堂| 国产亚洲精品美女久久久| 国产一区二区三区视频免费| 精品成人69xx.xyz| 中文字幕亚洲专区| 欧美日韩国产综合视频在线观看中文| xx视频.9999.com| 青青a在线精品免费观看| 久久人人爽人人爽人人片av高清| 欧美精品18videosex性欧美| 色黄久久久久久| 亚洲国产日韩欧美在线动漫| 亚洲a成v人在线观看| 欧美富婆性猛交| 精品少妇v888av| 国产精品一区二区久久精品| 久久伊人免费视频| 国产丝袜精品第一页| 久久精品在线播放| 美女性感视频久久久| 国产在线a不卡| 亚洲欧美另类在线观看| 成人免费网站在线观看| 日韩大胆人体377p| 国产成人精品一区二区| 欧美精品手机在线| 亚洲在线视频福利| 69国产精品成人在线播放| 国产精品wwwwww| 91久久精品国产91久久| 亚洲综合精品一区二区| 亚洲视频在线观看网站| 国产成人激情小视频| 国产福利精品av综合导导航| 精品视频在线导航| 国产精品www色诱视频| 精品一区电影国产| 91sa在线看| 精品久久久久人成| 国产成人一区二区在线| 亚洲影院色无极综合| 91网站在线看| 成人情趣片在线观看免费| 亚洲影院高清在线| 亚洲欧美中文在线视频| 中文字幕av一区二区三区谷原希美| 亚洲日本欧美日韩高观看| 亚洲人永久免费| 91精品在线国产| 亚洲欧美日韩一区二区在线| 久久影视电视剧凤归四时歌| 在线电影欧美日韩一区二区私密| 欧美综合国产精品久久丁香| 18性欧美xxxⅹ性满足| 亚洲毛片在线免费观看| 亚洲福利视频网站| 欧美一级高清免费|