iOSTableView頭視圖根據(jù)偏移量下拉縮放效果-創(chuàng)新互聯(lián)

本文實(shí)例為大家分享了iOS TableView實(shí)現(xiàn)下拉縮放效果的具體代碼,供大家參考,具體內(nèi)容如下

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),龍江企業(yè)網(wǎng)站建設(shè),龍江品牌網(wǎng)站建設(shè),網(wǎng)站定制,龍江網(wǎng)站建設(shè)報(bào)價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,龍江網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

在做項(xiàng)目時,一些TableView的地方會使用到下拉TableView讓HeardView頭視圖隨其偏移量的變化而變化,之前做過一次但沒記錄下來。現(xiàn)在做的時候總是遇到一些問題,比如下拉時是以原點(diǎn)向左右兩邊放大,這個只是效果問題。還有就是看到的視圖確實(shí)變大了,但是會蓋到下面的TableViewCell。開始以為是加在里面的視圖變大,而TableViewHeardView沒變大,我NSLog打印了一下兩個視圖的高度,發(fā)現(xiàn)是一樣的,找不到問題了。

在網(wǎng)上找了一些相關(guān)的例子,各有各的做法,有的是根據(jù)偏移量來設(shè)置TableViewHeardView的縮放,有的是設(shè)置里面被我們設(shè)置為TableViewHeardView的那個視圖的大小,都試了一下感覺還是不行,感覺縮放效果是有了的,但是拉大一點(diǎn)就會把下面的cell蓋住。

之后自己摸索,調(diào)整后,我是用偏移量來控制里面的imageView的大小,imageView是我設(shè)置的HeardView的子視圖,而heardView和TableViewheard的大小不會根據(jù)imageView變化,只是坐標(biāo)變了,其實(shí)這是一種錯覺,真實(shí)的效果是imageView坐標(biāo)向左上方偏移,大小也變化,而heardView和TableViewheard沒變大,但imageView變大的部分蓋住他們的上方,讓我們覺得heardView和TableViewheard也變大了,可以參考文章下面的邏輯圖。

先看一看效果吧,一張是沒下拉時的效果,一張是下拉時的效果。

iOS TableView頭視圖根據(jù)偏移量下拉縮放效果

可以看到imageView向四周變大了,而頭像和昵稱只是垂直方向位置變了,而大小沒變。

這里用到的控件入下圖

iOS TableView頭視圖根據(jù)偏移量下拉縮放效果

#define ScreenWidth [UIScreen mainScreen].bounds.size.width

在viewDidLoad里創(chuàng)建一下

//========== 頭視圖創(chuàng)建與設(shè)置 ===========
  imageHight = 250;
  [self creatHeardView];

- (void)creatHeardView
{
  headerView = [[UIView alloc] initWithFrame:(CGRectMake(0, 0, ScreenWidth, imageHight+50))];
  //背景視圖
  heardImageView = [[UIImageView alloc] init];
  heardImageView.frame = CGRectMake(0, 0, ScreenWidth, imageHight);
  heardImageView.image = [UIImage imageNamed:@"backGround.jpg"];
  [headerView addSubview:heardImageView];
  //用戶頭像
  personImageView = [[UIImageView alloc] initWithFrame:CGRectMake(ScreenWidth-30-60, imageHight-30, 60, 60)];
  personImageView.layer.cornerRadius = CGRectGetWidth(personImageView.frame)/2;
  personImageView.layer.masksToBounds = YES;
  [headerView addSubview:personImageView];
  //用戶名
  personNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMinX(personImageView.frame)-200, CGRectGetMinY(personImageView.frame), 180, 30)];
  personNameLabel.font = [UIFont systemFontOfSize:15];
  personNameLabel.textColor = [UIColor whiteColor];
  personNameLabel.textAlignment = NSTextAlignmentRight;
  [headerView addSubview:personNameLabel];
  //個人簽名
  introduceLabel = [[UILabel alloc] initWithFrame:CGRectMake(30, CGRectGetMaxY(personImageView.frame), ScreenWidth-60, 20)];
  introduceLabel.font = [UIFont systemFontOfSize:10];
  introduceLabel.textColor = [UIColor grayColor];
  introduceLabel.textAlignment = NSTextAlignmentRight;
  [headerView addSubview:introduceLabel];
  
  comTableView.tableHeaderView = headerView;//設(shè)置頭視圖
}

然后在TableView的滾動代理中有一個方法可以實(shí)時監(jiān)測滾動偏移量,
#pragma mark - 滾動代理
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
  CGFloat width = self.view.frame.size.width; // 圖片寬度
  CGFloat yOffset = scrollView.contentOffset.y; // 偏移的y值,還要考慮導(dǎo)航欄的64哦
  if (yOffset < 0) {//向下拉是負(fù)值,向上是正
    CGFloat totalOffset = imageHight + ABS(yOffset);
    CGFloat f = totalOffset / imageHight;//縮放比例
    //拉伸后的圖片的frame應(yīng)該是同比例縮放。
    heardImageView.frame = CGRectMake(- (width * f - width) / 2, yOffset, width * f, totalOffset); 
  }
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站m.kartarina.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站名稱:iOSTableView頭視圖根據(jù)偏移量下拉縮放效果-創(chuàng)新互聯(lián)
本文地址:http://m.kartarina.com/article18/dcpcgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作云服務(wù)器、商城網(wǎng)站網(wǎng)站收錄虛擬主機(jī)、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
主站蜘蛛池模板: 国产精品热久久无码av| 少妇人妻无码精品视频app| 免费一区二区无码视频在线播放 | 亚洲熟妇无码一区二区三区导航| 国产亚洲大尺度无码无码专线| 人妻丰满熟妇aⅴ无码| 中文无码乱人伦中文视频在线V| 中文字幕无码av激情不卡久久| 中文字幕丰满乱孑伦无码专区| 无码人妻精品中文字幕免费东京热| 50岁人妻丰满熟妇αv无码区| 国产精品无码久久四虎| 亚洲va中文字幕无码久久不卡| 成人免费无码视频在线网站| 日韩精品无码一区二区三区| 亚洲精品97久久中文字幕无码| 国产精品亚洲专区无码唯爱网| 亚洲动漫精品无码av天堂| 久久无码一区二区三区少妇| 无码人妻丰满熟妇区毛片| 国产在线无码一区二区三区视频| 无码不卡亚洲成?人片| 久久伊人中文无码| 人妻精品久久无码区| 波多野结衣AV无码| 亚洲精品高清无码视频| 人妻丰满熟妇AV无码区| 久久中文精品无码中文字幕| 久久午夜无码鲁丝片秋霞| 亚洲综合无码一区二区| 亚洲成A∨人片在线观看无码| 亚洲熟妇无码八V在线播放| 精品久久久久久中文字幕无码| 日韩久久无码免费毛片软件| 免费人成无码大片在线观看| 无码乱人伦一区二区亚洲一 | 免费无遮挡无码永久视频| 国产aⅴ激情无码久久| 精品无码国产一区二区三区麻豆| 亚洲AV综合色区无码二区偷拍| 亚洲av成人中文无码专区|