接着上周的项目, 在上周我别出心裁的在自定义TabbarController中加入了自定义转场动画, 受到了大家广泛的喜爱, 再次表示感激, 今天我们继续实现LifestyleViewController的第二个功能渐变导航栏!!
渐变导航栏, 现在很多项目里都有这个功能, 我们就把这个功能集成到我们的项目中来; 根据设计图纸需求, 我们需要在轮播图下面有一个搜索栏, 搜索栏根据滑动偏移到导航栏之上.
具体怎么实现呢, Easy啦~ 不急,我们一步一步来.
创建搜索栏Cell
首先打开我们的项目先在轮播图Cell下创建一个搜索栏Cell 并添加子控件.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
- (UIImageView *)hotSpotsImageView { if (!_hotSpotsImageView) { _hotSpotsImageView = [UIImageView new]; _hotSpotsImageView.image = [UIImage imageNamed:@"Hot Spots"]; } return _hotSpotsImageView; } - (void)layoutSubviews { [super layoutSubviews]; CGFloat padding = kSpace; CGFloat hotSpotsImageViewX = padding; CGFloat hotSpotsImageViewW = 90; CGFloat hotSpotsImageViewH = 20; CGFloat hotSpotsImageViewY = self.height - hotSpotsImageViewH - 5; self.hotSpotsImageView.frame = CGRectMake(hotSpotsImageViewX, hotSpotsImageViewY, hotSpotsImageViewW, hotSpotsImageViewH); } |
这时你可能会问 为什么不在Cell中添加TextField之类的, 由于我们的效果,之后再向您揭晓;
控制器 多Cell设计
这时回到控制器, 但是控制器中不止一种Cell, 我们怎么来设计呢?? 我的实现方法是KeysArr, 那什么是KeysArr呢,我们来看代码.
首先我们需要创建一个全局类 (这个写法和上周的 投机流 自定义转场有异曲同工之妙)
创建全局类
全局类中的每一个Key对应着你的一个Cell
.h
1 2 |
extern NSString * const kSQLifestyleBannerKey; extern NSString * const kSQLifestyleSearchKey; |
.m
1 2 |
NSString * const kSQLifestyleBannerKey = @"轮播图"; NSString * const kSQLifestyleSearchKey = @"热点"; |
keys数组
接着我们创建一个数组来持有这些key;
1 |
@property (nonatomic,strong) NSArray * keysArr; |
1 2 3 4 5 6 7 8 |
- (NSArray *)keysArr { if (!_keysArr) { _keysArr = @[kSQLifestyleBannerKey, kSQLifestyleSearchKey]; } return _keysArr; } |
Tableview delegate mothod
最后在代理方法中进行判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { Ρ图纸需求, 我们需要在轮播图下面有一个搜索栏, 搜索栏根据滑动偏移到导航栏之上. 具体怎么实现呢, Easy啦~ 不急,我们一步一步来. 创建搜索栏Cell首先打开我们的项目先在轮播图Cell下创建一个搜索栏Cell 并添加子控件.
这时你可能会问 为什么不在Cell中添加TextField之类的, 由于我们的效果,之后再向您揭晓; 控制器 多Cell设计这时回到控制器, 但是控制器中不止一种Cell, 我们怎么来设计呢?? 我的实现方法是KeysArr, 那什么是KeysArr呢,我们来看代码. 首先我们需要创建一个全局类 (这个写法和上周的 投机流 自定义转场有异曲同工之妙) 创建全局类全局类中的每一个Key对应着你的一个Cell
keys数组接着我们创建一个数组来持有这些key;
Tableview delegate mothod最后在代理方法中进行判断
|