欧美日韩激情_美女国产一区_国产精品久久久久影院日本_69xxx在线

iOS仿新聞tab標(biāo)題欄效果

iOS仿網(wǎng)易新聞之類的滑動(dòng)標(biāo)題欄,供大家參考,具體內(nèi)容如下

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作與策劃設(shè)計(jì),古田網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:古田等地區(qū)。古田做網(wǎng)站價(jià)格咨詢:18980820575

預(yù)覽

iOS仿新聞tab標(biāo)題欄效果

思路

兩個(gè)scorllview,一個(gè)用于標(biāo)題欄,一個(gè)擁有底下的page
標(biāo)題欄文字和效果切換,漸變色和大小都是根據(jù)底下的page偏移量來(lái)歸一化換算的
小橫線直接加載標(biāo)題欄所在的scorllview里面,小橫線自身要有局部偏移,根據(jù)page來(lái)切換
標(biāo)題欄的居中需要算一個(gè)scrollview的偏移量,小橫線跟著scorllview偏移
監(jiān)聽(tīng)scrollview的滑動(dòng)和停止滑動(dòng)進(jìn)行相應(yīng)的處理

- (void)viewDidLoad
{
 [super viewDidLoad];
 // Do any additional setup after loading the view.
 [self createTitleScrollView];
 [self createButtonLine];
 [self createContentScrollview];
}
 
#pragma mark - 初始化UI
- (void)createTitleScrollView
{
 // 根據(jù)是否有導(dǎo)航欄調(diào)整坐標(biāo)
 CGFloat marginY = self.navigationController ? self.navigationController.view.frame.size.height : kUpMargin;
 
 // 標(biāo)題欄,包括小橫線的位置
 _titleScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, marginY, kFrameWidth, kTitleHeight + kButtonLineHeight)];
 _titleScrollView.showsHorizontalScrollIndicator = NO;
 _titleScrollView.bounces = NO;
 _titleScrollView.delegate = self;
 [self.view addSubview:_titleScrollView];
 
 // 添加button
 NSArray *titleArray = @[@"頭條", @"社會(huì)", @"財(cái)經(jīng)", @"科技", @"體育", @"娛樂(lè)", @"時(shí)尚", @"軍事", @"教育", @"游戲"];
 _pageCount = titleArray.count;
 _titleScrollView.contentSize = CGSizeMake(kButtonWidth * _pageCount, kTitleHeight);
 for (int i = 0; i < _pageCount; i++)
 {
  UIButton *titleBtn = [[UIButton alloc] initWithFrame:CGRectMake(kButtonWidth * i, 0, kButtonWidth, kTitleHeight)];
  [titleBtn setTitle:titleArray[i] forState:UIControlStateNormal];
  [titleBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  titleBtn.titleLabel.font = [UIFont systemFontOfSize:16];
  [titleBtn addTarget:self action:@selector(titleButtonClicked:) forControlEvents:UIControlEventTouchDown];
  titleBtn.tag = 1000 + i; // button做標(biāo)記,方便后面索引,為了不出沖突,就把這個(gè)數(shù)值設(shè)得大一些
  [_titleScrollView addSubview:titleBtn];
 };
}
 
- (void)createButtonLine
{
 // 初始時(shí)刻停在最左邊與按鈕對(duì)齊
 _buttonLine = [[UIView alloc] initWithFrame:CGRectMake(0, kTitleHeight, kButtonWidth, kButtonLineHeight)];
 _buttonLine.backgroundColor = [UIColor redColor];
 // 小橫線加載scrollview上才能跟隨button聯(lián)動(dòng)
 [_titleScrollView addSubview:_buttonLine];
}
 
- (void)createContentScrollview
{
 CGFloat marginY = self.navigationController ? self.navigationController.view.frame.size.height : kUpMargin;
 
 // 添加內(nèi)容頁(yè)面
 _contentScrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, marginY + kTitleHeight + kButtonLineHeight, kFrameWidth, kFrameHeight - marginY - kTitleHeight - kButtonLineHeight)];
 _contentScrollview.pagingEnabled = YES;
 _contentScrollview.bounces = NO;
 _contentScrollview.contentSize = CGSizeMake(kFrameWidth * _pageCount, kFrameHeight - marginY - kTitleHeight);
 _contentScrollview.showsHorizontalScrollIndicator = NO;
 _contentScrollview.delegate = self;
 [self.view addSubview:_contentScrollview];
 
 // 添加分頁(yè)面
 for (int i = 0; i < _pageCount; i++)
 {
  PageViewController *pageViewController = [[PageViewController alloc] init];
  UIButton *button = [_titleScrollView viewWithTag:1000 + i];
  pageViewController.title = button.currentTitle;
  pageViewController.view.frame = CGRectMake(kFrameWidth * i, 0, kFrameWidth, kFrameHeight - marginY - kTitleHeight);
  [_contentScrollview addSubview:pageViewController.view];
 }
 
 // 初始化后選中某個(gè)欄目
 [self titleButtonClicked:[_titleScrollView viewWithTag:1000 + 0]];
}
 
#pragma mark - 標(biāo)題button點(diǎn)擊事件
- (void)titleButtonClicked:(UIButton *)sender
{
 // 根據(jù)點(diǎn)擊的button切換頁(yè)面和偏移
 printf("%s clicked\n", sender.currentTitle.UTF8String);
 
 // 以下不用了,因?yàn)閟croll切換會(huì)自動(dòng)處理好尺寸和顏色了
// for (int i = 0; i < _pageCount; i++)
// {
//  UIButton *button = [_titleScrollView viewWithTag:1000 + i];
//  // 重置button尺寸顏色
//  button.transform = CGAffineTransformMakeScale(1, 1);
//  [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
// }
 
 // 強(qiáng)調(diào)被選中的button
 // 放大聚焦
 sender.transform = CGAffineTransformMakeScale(kMaxTitleScale, kMaxTitleScale);
 // 變色
 [sender setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
 
 // 居中title
 [self settleTitleButton:sender];
 
 // 帶動(dòng)畫(huà)切換到對(duì)應(yīng)的內(nèi)容,會(huì)觸發(fā)scrollViewDidScroll
 NSInteger pageIndex = sender.tag - 1000;
 [_contentScrollview setContentOffset:CGPointMake(kFrameWidth * pageIndex, 0) animated:YES];
}
 
#pragma mark - scrollview滑動(dòng)事件
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
 // 根據(jù)content內(nèi)容偏移調(diào)整標(biāo)題欄
 if (scrollView == _titleScrollView)
 {
  printf("title moved\n");
  
  
 }
 else if (scrollView == _contentScrollview)
 {
  printf("content moved\n");
  
  // 獲得左右兩個(gè)button的索引, 注意最后取整
  CGFloat offsetX = scrollView.contentOffset.x;
  NSInteger leftTitleIndex = offsetX / kFrameWidth;
  NSInteger rightTitleIndex = leftTitleIndex + 1;
  // 因?yàn)樵O(shè)置了到邊不能滑動(dòng),所以不考慮邊界
  UIButton *leftTitleButton = [_titleScrollView viewWithTag:1000 + leftTitleIndex];
  UIButton *rightTitleButton = [_titleScrollView viewWithTag:1000 + rightTitleIndex];
  
  // 設(shè)置大小和顏色漸變以及小橫線的聯(lián)動(dòng)
  // 權(quán)重因子 0~1 小數(shù), 左邊和右邊互補(bǔ)
  CGFloat rightTitleFactor = offsetX / kFrameWidth - leftTitleIndex;
  CGFloat leftTitleFactor = 1 - rightTitleFactor;
  
  // 尺寸
  CGFloat maxExtraScale = kMaxTitleScale - 1;
  leftTitleButton.transform = CGAffineTransformMakeScale(1 + leftTitleFactor * maxExtraScale, 1 + leftTitleFactor * maxExtraScale);
  rightTitleButton.transform = CGAffineTransformMakeScale(1 + rightTitleFactor * maxExtraScale, 1 + rightTitleFactor * maxExtraScale);
  // 顏色
  UIColor *leftTitleColor = [UIColor colorWithRed:0 green:leftTitleFactor blue:0 alpha:1];
  UIColor *rightTitleColor = [UIColor colorWithRed:0 green:rightTitleFactor blue:0 alpha:1];
  [leftTitleButton setTitleColor:leftTitleColor forState:UIControlStateNormal];
  [rightTitleButton setTitleColor:rightTitleColor forState:UIControlStateNormal];
  // 小橫線位移
  _buttonLine.frame = CGRectMake(kButtonWidth * (leftTitleIndex + rightTitleFactor), _buttonLine.frame.origin.y, kButtonWidth, kButtonLineHeight);
 }
}
 
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
 // 內(nèi)容區(qū)塊滑動(dòng)結(jié)束調(diào)整標(biāo)題欄居中
 if (scrollView == _contentScrollview)
 {
  // 取得索引值
  NSInteger titleIndex = scrollView.contentOffset.x / kFrameWidth;
  // title居中
  [self settleTitleButton:[_titleScrollView viewWithTag:1000 + titleIndex]];
 }
}
 
#pragma mark - 標(biāo)題按鈕和橫線居中偏移
- (void)settleTitleButton:(UIButton *)button
{
 // 標(biāo)題
 // 這個(gè)偏移量是相對(duì)于scrollview的content frame原點(diǎn)的相對(duì)對(duì)標(biāo)
 CGFloat deltaX = button.center.x - kFrameWidth / 2;
 // 設(shè)置偏移量,記住這段算法
 if (deltaX < 0)
 {
  // 最左邊
  deltaX = 0;
 }
 CGFloat maxDeltaX = _titleScrollView.contentSize.width - kFrameWidth;
 if (deltaX > maxDeltaX)
 {
  // 最右邊不能超范圍
  deltaX = maxDeltaX;
 }
 [_titleScrollView setContentOffset:CGPointMake(deltaX, 0) animated:YES];
 
}

源代碼下載

csdn:仿網(wǎng)易新聞tab效果

github:仿網(wǎng)易新聞tab效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

網(wǎng)頁(yè)標(biāo)題:iOS仿新聞tab標(biāo)題欄效果
轉(zhuǎn)載注明:http://www.kartarina.com/article18/jecpdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)商城網(wǎng)站網(wǎng)站設(shè)計(jì)公司響應(yīng)式網(wǎng)站網(wǎng)站營(yíng)銷微信公眾號(hào)

廣告

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

成都定制網(wǎng)站建設(shè)
欧美日韩激情_美女国产一区_国产精品久久久久影院日本_69xxx在线
成a人片亚洲日本久久| 国产精品久久久久aaaa| 欧美日精品一区视频| 国产精品美女久久久久久久 | 99久久久精品| 亚洲男人的天堂av| 在线观看www91| 日韩成人午夜精品| 欧美精品一区二区三区四区| 国产精品一卡二卡在线观看| 国产精品视频看| 91在线观看下载| 日韩中文字幕91| 久久精品视频网| 99国产精品久久久久| 亚洲成人免费观看| 精品欧美一区二区在线观看| 国产高清精品网站| 亚洲最新视频在线播放| 4438亚洲最大| 成人午夜视频在线| 亚洲成人福利片| 国产欧美综合在线观看第十页| 成人免费精品视频| 亚洲va欧美va人人爽| 久久精品欧美一区二区三区不卡 | 午夜精品视频在线观看| 国产欧美日韩另类一区| 欧美午夜影院一区| 福利一区在线观看| 日韩高清不卡一区二区三区| 国产精品久久久久久久久免费桃花 | 国产91精品入口| 亚洲成人久久影院| 国产精品麻豆一区二区| 日韩一区二区三区四区| 色偷偷一区二区三区| 国产精品一区二区免费不卡| 亚洲国产日韩一级| 亚洲欧美另类在线| 国产精品妹子av| 久久一区二区三区四区| 51久久夜色精品国产麻豆| 97久久人人超碰| 大白屁股一区二区视频| 国产在线视视频有精品| 狠狠色综合日日| 久久99热这里只有精品| 三级不卡在线观看| 日韩电影免费在线观看网站| 亚洲男人的天堂在线观看| 中文字幕第一区第二区| 国产欧美一区二区三区在线看蜜臀| 欧美高清www午色夜在线视频| 日本电影亚洲天堂一区| 91在线观看视频| 91蝌蚪porny| 92国产精品观看| 色诱亚洲精品久久久久久| kk眼镜猥琐国模调教系列一区二区| 国产精品一区不卡| 从欧美一区二区三区| 国产99久久久国产精品免费看 | 亚洲精品第1页| 亚洲黄色免费电影| 亚洲18女电影在线观看| 日韩成人伦理电影在线观看| 亚洲成人黄色影院| 日韩中文字幕一区二区三区| 日韩制服丝袜av| 激情综合亚洲精品| 成人一二三区视频| 在线亚洲一区观看| 日韩一级欧美一级| 国产蜜臀av在线一区二区三区| 中国色在线观看另类| 亚洲伦理在线免费看| 亚洲大片在线观看| 国产一区福利在线| 91丨九色丨尤物| 欧美区一区二区三区| 日韩免费看网站| 国产女同性恋一区二区| 亚洲激情校园春色| 美脚の诱脚舐め脚责91| 丰满放荡岳乱妇91ww| 色婷婷综合久久久久中文 | 亚洲视频精选在线| 亚洲国产精品久久久久秋霞影院| 日韩精品电影在线| 国产a视频精品免费观看| 色94色欧美sute亚洲线路二 | 国产精品乱码久久久久久| 一级女性全黄久久生活片免费| 日韩国产欧美三级| 99久久99久久免费精品蜜臀| 宅男噜噜噜66一区二区66| 久久精品视频免费| 一区av在线播放| 成人午夜免费电影| 欧美一级午夜免费电影| 国产精品久久免费看| 日韩精品1区2区3区| 9色porny自拍视频一区二区| 欧美一区二区视频网站| 亚洲精品高清在线| 国内精品国产三级国产a久久| 91免费看视频| 2020国产精品自拍| 亚洲午夜在线视频| 国产91精品一区二区麻豆亚洲| 欧美精品亚洲二区| 亚洲天堂av一区| 国产在线看一区| 91精品久久久久久久久99蜜臂| 成人欧美一区二区三区在线播放| 久久成人免费网站| 7777精品伊人久久久大香线蕉| 亚洲免费看黄网站| 成人av资源在线观看| 日韩欧美中文字幕精品| 亚洲va国产天堂va久久en| 99久久免费国产| 国产女同性恋一区二区| 国产自产高清不卡| 欧美mv日韩mv国产网站app| 视频一区视频二区中文字幕| 色综合久久中文综合久久97| 国产精品毛片久久久久久| 国模套图日韩精品一区二区| 在线综合+亚洲+欧美中文字幕| 亚洲一级二级在线| 欧美日韩午夜在线| 日韩精品福利网| 精品久久久久av影院| 国产一区二区三区在线观看免费| 日韩欧美三级在线| 国内精品久久久久影院色| 久久综合精品国产一区二区三区| 美女www一区二区| 欧美电影免费观看高清完整版| 日韩福利视频网| 26uuu久久综合| 国产99精品在线观看| 国产精品久久久99| 欧美性生活久久| 蜜桃视频一区二区| 久久精品亚洲精品国产欧美| 高清不卡一区二区在线| 亚洲男人的天堂av| 欧美日韩在线观看一区二区| 天堂在线一区二区| 精品国产亚洲在线| 成人午夜视频福利| 亚洲成av人片在www色猫咪| 欧美一区二区三区电影| 国产伦精品一区二区三区在线观看 | 久久婷婷色综合| 不卡av电影在线播放| 亚洲激情欧美激情| 日韩久久久精品| 99re成人在线| 另类小说图片综合网| 中文字幕二三区不卡| 91麻豆123| 韩国欧美国产1区| 亚洲黄色免费电影| 久久老女人爱爱| 欧美日韩久久久久久| 国产乱子轮精品视频| 自拍视频在线观看一区二区| 欧美日韩午夜在线| eeuss鲁一区二区三区| 日本中文一区二区三区| 国产日韩欧美精品一区| 91久久国产最好的精华液| 精品亚洲免费视频| 亚洲网友自拍偷拍| 国产视频一区在线观看| 制服丝袜av成人在线看| 99久久精品99国产精品| 精品一区二区免费看| 亚洲va韩国va欧美va精品| 国产日韩高清在线| 91精品国产综合久久国产大片| av中文字幕在线不卡| 国产一区二区三区电影在线观看| 亚洲大片精品永久免费| 最新日韩在线视频| 国产精品污网站| 久久久精品综合| 日韩欧美激情四射| 欧美高清一级片在线| 色综合久久综合中文综合网| 国产精品亚洲视频| 国内精品嫩模私拍在线| 日韩精品成人一区二区三区| 亚洲二区在线观看| 亚洲国产中文字幕| 亚洲1区2区3区视频|