tableView头部放scrollView滚动视图
来源:互联网 发布:林少华 知乎 编辑:程序博客网 时间:2024/06/11 15:11
开发思想 自定义UIView ,在UIView中添加scrollView,
使用场景 新闻首页滚动效果 so on
//
// BookViewController.m// UITableViewCell定制
#import "BookViewController.h"
#import "BookModel.h"
#import "BookCell.h"
#import "ADView.h"
@interface BookViewController ()<UITableViewDataSource,UITableViewDelegate>
{
UITableView *_bookTableView;
//数据源数组
NSMutableArray *_dataArray;
}
@end
@implementation BookViewController
- (void)dealloc{
[_dataArray release];
[_bookTableView release];
[super dealloc];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.automaticallyAdjustsScrollViewInsets = NO;
[self loadData];
[self showUI];
}
//初始化数据
- (void)loadData{
_dataArray = [[NSMutableArray alloc] init];
//解析plist 文件
NSString *path = [[NSBundle mainBundle] pathForResource:@"bookData" ofType:@"plist"];
NSArray *array = [[NSArray alloc] initWithContentsOfFile:path];
//遍历数组 把数组中字典的内容 存放到数据模型对象中 然后把数据模型对象地址放入数据源数组
for (NSDictionary *dict in array) {
BookModel *bookModel = [[BookModel alloc] init];
bookModel.bookName = [dict objectForKey:@"title"];
bookModel.bookDescription = dict[@"detail"];
bookModel.price = dict[@"price"];
bookModel.imageName = dict[@"icon"];
[_dataArray addObject:bookModel];
[bookModel release];
}
}
//创建表格视图
#pragma mark - 创建表格视图
- (void)showUI{
_bookTableView =[[UITableView alloc] initWithFrame:CGRectMake(0, 64, 320, 416) style:UITableViewStylePlain];
//设置代理
_bookTableView.delegate = self;
_bookTableView.dataSource = self;
//_bookTableView.transform = CGAffineTransformMakeRotation(-M_PI_2);
//设置表格的头视图
_bookTableView.tableHeaderView = [[[ADView alloc] initWithFrame:CGRectMake(0, 0,320,160)] autorelease];
_bookTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
[self.view addSubview:_bookTableView];
}
#pragma mark == delegate协议==
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 100;
}
#pragma mark - 数据源协议的方法
//多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return _dataArray.count;
}
//创建cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString * cellName = @"bookCell";
//从复用队列中获取自定义的cell
BookCell *cell = [tableView dequeueReusableCellWithIdentifier:cellName];
if (cell == nil) {
//创建自定义的cell
cell = [[BookCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellName];
//cell.transform = CGAffineTransformMakeRotation(M_PI_2);
}
//对cell 进行内容的修改 在{}进行
//从数据源获取数据模型
BookModel *model = _dataArray[indexPath.row];
//先设置数据模型
cell.bookModel = model;
//显示数据
[cell showData];
cell.backgroundColor = [UIColor colorWithRed:154/255.0f green:154/255.0f blue:154/255.0f alpha:1];
return cell;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"tableView gun ");
}
@end
//// ADView.m#import "ADView.h"#import "MyControl.h"@interface ADView() <UIScrollViewDelegate>@end@implementation ADView{ UIScrollView *_scrollView; UIPageControl *_pageControl; UILabel *_label;}- (void)dealloc{ [_scrollView release]; [_pageControl release]; [super dealloc];}- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { [self showUI]; } return self;}- (void)showUI{ _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 160)]; for (int i = 0; i < 4; i++) { UIImageView *image = [MyControl creatImageViewWithFrame:CGRectMake(320*i, 0, 320, 160) image:[NSString stringWithFormat:@"image%d",i]]; [_scrollView addSubview:image]; } _scrollView.contentSize = CGSizeMake(320*4, 160); _scrollView.showsHorizontalScrollIndicator = NO; _scrollView.showsVerticalScrollIndicator = NO; _scrollView.pagingEnabled = YES; _scrollView.delegate = self; [self addSubview:_scrollView]; UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 130, 320, 30)]; view.backgroundColor = [UIColor blackColor]; view.alpha = 0.5; _label = [MyControl creatLabelWithFrame:CGRectMake(10, 0, 200, 30) text:@"图片0的标题"]; _label.textColor = [UIColor whiteColor]; [view addSubview:_label]; _pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(200, 0, 120, 30)]; _pageControl.numberOfPages = 4; //添加翻页触发事件 [_pageControl addTarget:self action:@selector(pageControl:) forControlEvents:UIControlEventValueChanged]; [view addSubview:_pageControl]; [self addSubview:view]; [view release]; }//控制滚动- (void)pageControl:(UIPageControl *)page{ [_scrollView setContentOffset:CGPointMake(_pageControl.currentPage*320, 0) animated:YES]; _label.text = [NSString stringWithFormat:@"图片%ld的标题",page.currentPage];}- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ CGPoint point = scrollView.contentOffset; _pageControl.currentPage = point.x/320; _label.text = [NSString stringWithFormat:@"图片%ld的标题",_pageControl.currentPage];}- (void)scrollViewDidScroll:(UIScrollView *)scrollView { NSLog(@"ScrollView gun ");}/*// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect{ // Drawing code}*/@end
0 0
- tableView头部放scrollView滚动视图
- tableView下拉放大头部视图
- ScrollView向上滚动显示头部
- 滚动视图 ScrollView
- ScrollView 滚动视图组件
- ScrollView滚动视图
- 07 ScrollView 滚动视图
- 滚动视图控件ScrollView
- iOS8 scrollView滚动视图
- Android ScrollView 滚动视图
- ScrollView 滚动视图
- tableview下拉头部视图背景变大
- tableView头部视图下拉放大效果
- tableView和scrollView滚动起冲突,tableview不能滚动
- android 滚动视图(ScrollView)
- ios滚动视图(scrollView)
- ios滚动视图(scrollView)
- 【android之ScrollView滚动视图】
- Windows下Mysql5.6启动日志
- BLOG搬家
- android 布局如何支持多种不同屏幕尺寸
- struts2中Included file cannot be found问题解决
- ios UITableView 异步加载图片并防止错位
- tableView头部放scrollView滚动视图
- Objective-C Foundation框架实践——NSArray(二)
- java值传递还是应用传递
- ubuntu下Pycharm安装及配置
- 多元统计分析上机题之R语言实现(多元正态分布)
- 深入探究Lua中的解析表达式
- springAOP demo 带错误解决文档
- leetcode之Majority Element II
- 浅表核心动画