麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > iOS > 正文

iOS實現(xiàn)頭部拉伸效果

2019-10-21 18:41:12
字體:
供稿:網(wǎng)友

本文實例為大家分享了iOS實現(xiàn)頭部拉伸效果展示的具體代碼,供大家參考,具體內(nèi)容如下

主要涉及到導(dǎo)航欄透明度、圖片拉伸、列表頭部等。

  • 導(dǎo)航欄透明度的實現(xiàn)。
  • 列表拖動距離的監(jiān)聽,及圖片放大的實現(xiàn)。

導(dǎo)航透明度的設(shè)置

添加系統(tǒng)導(dǎo)航欄的Category實現(xiàn)

聲明部分:

@interface UINavigationBar (BackgroundColor)- (void)lt_setBackgroundColor:(UIColor *)color;@end

實現(xiàn)部分:

#import <objc/runtime.h>@implementation UINavigationBar (BackgroundColor)static char overlayKey;- (UIView *)overlay{  return objc_getAssociatedObject(self, &overlayKey);}- (void)setOverlay:(UIView *)overlay{  objc_setAssociatedObject(self, &overlayKey, overlay, OBJC_ASSOCIATION_RETAIN_NONATOMIC);}- (void)lt_setBackgroundColor:(UIColor *)color{  if (!self.overlay) {    [self setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];    // insert an overlay into the view hierarchy    self.overlay = [[UIView alloc] initWithFrame:CGRectMake(0, -20, [UIScreen mainScreen].bounds.size.width, self.bounds.size.height + 20)];    self.overlay.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;    [self insertSubview:self.overlay atIndex:0];  }  self.overlay.backgroundColor = color;}@end

監(jiān)聽列表拖動及實現(xiàn)圖片放大

主要是監(jiān)聽滾動的距離(scrollViewDidScroll:方法)

 

#import "StretchViewController.h"#import "UINavigationBar+BackgroundColor.h"// 背景圖片的寬高比例#define ratio 0.8@interface StretchViewController () <UITableViewDelegate, UITableViewDataSource>// 可放大的背景圖片@property (nonatomic, strong) UIImageView *bgView;// 記錄原始大小@property (assign) CGRect originalFrame;@property (nonatomic, strong) UITableView *tableView;@end@implementation StretchViewController- (void)viewWillAppear:(BOOL)animated{  [super viewWillAppear:animated];  //[self.navigationController setNavigationBarHidden:YES animated:animated];  //self.navigationController.navigationBar.tintColor = [UIColor whiteColor];  //self.navigationController.navigationBar.barTintColor = [UIColor clearColor];  //self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];  // 設(shè)置導(dǎo)航欄底部分割線為透明  [self.navigationController.navigationBar setShadowImage:[UIImage new]];}- (void)viewDidLoad {  [super viewDidLoad];  // 設(shè)置全透明  [self.navigationController.navigationBar lt_setBackgroundColor:[[UIColor greenColor] colorWithAlphaComponent:0]];  // Do any additional setup after loading the view.  self.view.backgroundColor = [UIColor lightGrayColor];  self.bgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.width*ratio)];  self.bgView.image = [UIImage imageNamed:@"bg-mine"];  self.originalFrame = self.bgView.frame;  [self.view addSubview:self.bgView];  self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 64, self.view.bounds.size.width, self.view.bounds.size.height-64) style:UITableViewStylePlain];  self.tableView.backgroundColor = [UIColor clearColor];  self.tableView.showsVerticalScrollIndicator = NO;  self.tableView.delegate = self;  self.tableView.dataSource = self;  // 1. contentInset  //table.contentInset = UIEdgeInsetsMake(160, 0, 0, 0);  // 2. heatView  UIView *headView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 160)];  headView.backgroundColor = [UIColor clearColor];  self.tableView.tableHeaderView = headView;  [self.view addSubview:self.tableView];}- (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellIdentifier"];  if (cell == nil) {    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"cellIdentifier"];  }  cell.textLabel.text = @"測試數(shù)據(jù)";  return cell;}- (NSInteger)tableView:(nonnull UITableView *)tableView numberOfRowsInSection:(NSInteger)section {  return 10;}- (void)scrollViewDidScroll:(UIScrollView *)scrollView{  CGFloat yOffset = scrollView.contentOffset.y; // 向上滑動,offset是增加的;向下滑動,是減少的  if (yOffset < 160) { // 當(dāng)滑動到導(dǎo)航欄底部時    CGFloat colorAlpha = yOffset/160;//    self.navigationController.navigationBar.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:colorAlpha];    [self.navigationController.navigationBar lt_setBackgroundColor:[[UIColor whiteColor] colorWithAlphaComponent:colorAlpha]];  } else { // 超過導(dǎo)航欄底部了    [self.navigationController.navigationBar lt_setBackgroundColor:[UIColor whiteColor]];  }  // 往上滑動效果、處理放大效果  if (yOffset > 0) {    self.bgView.frame = ({      CGRect frame = self.bgView.frame;      frame.origin.y = self.originalFrame.origin.y - yOffset;      frame;    });  } else { // 往下移動,放大效果    self.bgView.frame = ({      CGRect frame = self.originalFrame;      frame.size.height = self.originalFrame.size.height - yOffset;      frame.size.width = frame.size.height/ratio;      //      frame.origin.x = self.originalFrame.origin.x - (frame.size.width - self.originalFrame.size.width)/2;      frame;    });  }}@end

以上是對系統(tǒng)原生的導(dǎo)航欄進(jìn)行透明度設(shè)置。

也可進(jìn)行自定義視圖設(shè)置為導(dǎo)航欄

效果如下:

iOS,頭部拉伸

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产青草视频在线观看视频 | 激情在线观看视频 | 国产亚洲精品久久久久久久久 | 成人av一区二区免费播放 | 国产1区视频 | 欧美性受xxxxxx黑人xyx性爽 | 欧美成人精品一区二区 | 免费一级片网站 | 亚洲一区久久久 | 欧美精品成人一区二区三区四区 | 久久久无码精品亚洲日韩按摩 | 欧美城网站地址 | 三人弄娇妻高潮3p视频 | 国产精品hd免费观看 | 欧美国产综合视频 | 欧美国产一级片 | 欧美女优一区 | 把娇妻调教成暴露狂 | 国产一级一国产一级毛片 | 性欧美极品xxxx欧美一区二区 | 美女在线观看视频一区二区 | 看免费黄色大片 | 91成人免费视频 | 久久露脸国语精品国产91 | 国产羞羞网站 | 国产美女视频一区二区三区 | 久久av一区二区 | 亚洲91网| www.17c亚洲蜜桃 | 干色视频 | 黄色网址在线免费 | av在线免费观看网 | 永久免费在线观看av | 福利免费视频 | 福利在线播放 | 成人不卡 | 久久经典 | 久久久久久久久久亚洲 | 久久免费视频一区 | 欧美日韩国产中文字幕 | 日韩午夜片 |