iOS点点滴滴

iOS 表格滑动视图放大头视图方法

2017-10-11  本文已影响12人  索性流年
只是一个逻辑实现具体的用处还要因人而异

<UITableViewDelegate,UITableViewDataSource>
// 添加 tableView
@property (nonatomic ,strong) UITableView *dragTableview;
// imageView
@property (nonatomic ,strong) UIImageView *photoImageview;

- (void)viewDidLoad {
[super viewDidLoad];
// 一步到位,“啊哒!~”
[self.view addSubview:self.dragTableview];
// 先创建一个头部视图KScreenWidth全屏的宽,是个懒加载
UIView * headerview = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 200)];
// 设置颜色
// headerview.backgroundColor = [UIColor colorWithRed:245/255.0 green:120/255.0 blue:111/255.0 alpha:0.2];
// 直接加载到内存中去了
self.photoImageview.image = [UIImage imageNamed:@"headerImage1.jpg"];
[headerview addSubview:self.photoImageview];
// 设置头部视图
self.dragTableview.tableHeaderView = headerview;
KScreenHeight全屏的高懒加载
UIView * backgroundView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)];
[backgroundView addSubview:self.photoImageview];
self.dragTableview.backgroundView = backgroundView;
}

// 拖动的时候,调用这个方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"%f",scrollView.contentOffset.y);
// 先取出来 imageView 的 frame
CGRect tempRect = self.photoImageview.frame;
if (scrollView.contentOffset.y > 0) {
// 向上滚动
tempRect.origin.y = -scrollView.contentOffset.y;
// 赋值回来
self.photoImageview.frame = tempRect;
}
else {
// 向下 滚动 图片放大(在原来的高度基础上放大) 肯定是跟 contentOffSet 有关系
tempRect.origin.y = 0;
tempRect.size.height = 200 - scrollView.contentOffset.y;
// 把修改后的 frame 赋值回去
self.photoImageview.frame = tempRect;
}
}

#pragma mark --返回组数 return sections // 返回组数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return nil;
}
// 返回行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 15;
}

// 返回 cell
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString * cellID = @"cellID";
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
// 设置颜色
cell.contentView.backgroundColor = [self randomColor];
}
cell.textLabel.text = [NSString stringWithFormat:@"第%ld个",indexPath.row];
return cell;
}

// 懒加载 lazyloading
- (UITableView *)dragTableview {
// 不会重复加载
if (!_dragTableview) {
_dragTableview = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight) style:UITableViewStylePlain];
_dragTableview.delegate = self;
_dragTableview.dataSource = self;
}
return _dragTableview;
}

- (UIImageView *)photoImageview {
if (!_photoImageview) {
_photoImageview = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 200)];
// 设置填充方式没有他你啥都看不到
_photoImageview.contentMode = UIViewContentModeScaleAspectFill;
}
return _photoImageview;
}

//随机颜色
- (UIColor *)randomColor
{
CGFloat r = arc4random() % 256 / 255.0;
CGFloat g = arc4random() % 256 / 255.0;
CGFloat b = arc4random() % 256 / 255.0;
return [UIColor colorWithRed:r green:g blue:b alpha:0.7];
}

能力有限,只能写这么多.有什么问题欢迎大家留言指正,我看到一定回复.感谢!!!!!!!
上一篇下一篇

猜你喜欢

热点阅读