UI-瀑布流的做法!
来源:互联网 发布:linux tomcat下载32位 编辑:程序博客网 时间:2024/04/28 15:20
UI-瀑布流的做法!
//在MainViewController.h文件中定义三个放在self.view上的三个Label变量;
@interface MainViewController :UIViewController<UITableViewDataSource,UITableViewDelegate>
{
UITableView *_leftTable;
UITableView *_centerTable;
UITableView *_rightTable;
NSMutableArray *_imageArray;
}
@end
//在MainViewController.m文件中初始化_imageArray(添加图片数量的数组);
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
_imageArray = [[NSMutableArrayalloc] init];
for (int i =1; i < 20; i++) {
NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc] init];//自动释放池
NSString *name = [NSStringstringWithFormat:@"%d.jpg",i];
[_imageArrayaddObject:name];
[pooldrain];
}
}
returnself;
}
//定义Label,根据_imageArray数量决定的line和row,设定Label的大小位置;
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view.
_leftTable = [[UITableViewalloc] initWithFrame:CGRectMake(0,20, 320.0/3,500) style:UITableViewStylePlain];
[_leftTablesetDelegate:self];
[_leftTablesetDataSource:self];
[self.viewaddSubview:_leftTable];
[_leftTablerelease];
_centerTable = [[UITableViewalloc] initWithFrame:CGRectMake(320/3,20, 320/3,500) style:UITableViewStylePlain];
[_centerTablesetDelegate:self];
[_centerTablesetDataSource:self];
[self.viewaddSubview:_centerTable];
[_centerTablerelease];
_rightTable = [[UITableViewalloc] initWithFrame:CGRectMake(320/3*2,20, 320/3,500) style:UITableViewStylePlain];
[_rightTablesetDelegate:self];
[_rightTablesetDataSource:self];
[self.viewaddSubview:_rightTable];
[_rightTablerelease];
}
#pragma mark -
#pragma mark TableView Delegate
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
NSInteger index = indexPath.row *3;
if (_centerTable == tableView) {
index++;
}
if (_rightTable == tableView) {
index +=2;
}
NSString *name = [_imageArrayobjectAtIndex:index];
UIImage *aImage = [UIImageimageNamed:name];
CGSize size = aImage.size;
CGFloat scale = size.width/(320/3);
CGFloat height = size.height/scale;
return height;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSInteger count = [_imageArraycount]/3;
NSInteger value = [_imageArraycount]%3;
if (_leftTable == tableView) {
if (value>0 ) {
count++;
}
}
if (_centerTable == tableView) {
if (value>1) {
count ++;
}
}
return count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellIdentify =@"cellIdentify";
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentify];
if (!cell) {
cell = [[[TableViewCellalloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellIdentify] autorelease];
}
NSInteger index = indexPath.row *3;
if (_centerTable == tableView) {
index++;
}
if (_rightTable == tableView) {
index +=2;
}
NSString *name = [_imageArrayobjectAtIndex:index];
NSLog(@"图片之前");
[cell.waterFallImagesetImage:[UIImageimageNamed:name]];
NSLog(@"图片之后");
return cell;
}
#pragma mark -
#pragma mark scrollviewdelegate
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
// NSLog(@"scrollview === %@",scrollView);
_leftTable.contentOffset = scrollView.contentOffset;
_centerTable.contentOffset = scrollView.contentOffset;
_rightTable.contentOffset = scrollView.contentOffset;
}
- (void)didReceiveMemoryWarning
{
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
//在TableViewCell.h文件中定义waterFallImage的属性变量
@interface TableViewCell : UITableViewCell
@property (nonatomic,retain)UIImageView *waterFallImage;
@end
//在TableViewCell.m文件中设置每个row的规格
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
self.waterFallImage = [[UIImageViewalloc] initWithFrame:CGRectMake(0,0, 320/3,200)];
[self.contentViewaddSubview:_waterFallImage];
[_waterFallImagerelease];
}
return self;
}
-(void)layoutSubviews{
[superlayoutSubviews];
NSLog(@"%s",__func__);
CGSize size = self.waterFallImage.image.size;
//设置waterFallImage的坐标,宽,高
CGFloat scale = size.width/(320/3);
CGFloat height = size.height/scale;
[self.waterFallImagesetFrame:CGRectMake(0,0, 320/3, height)];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[supersetSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
- UI-瀑布流的做法!
- jQuery-瀑布流的取巧做法分享
- jQuery-瀑布流的取巧做法分享
- Android瀑布流 & 仿Win8的metro的UI界面
- UI基础__UICollectionView__瀑布流
- selenium测瀑布流UI页面的Python代码
- swing改变UI正确的做法
- Android UI 之WaterFall瀑布流效果
- Android UI 之WaterFall瀑布流效果
- Android UI 之WaterFall瀑布流效果
- Android UI 之WaterFall瀑布流效果
- iOS开发 UI UICollectionView 瀑布流
- android---UI---RecyclerView实现瀑布流(1)
- android---UI---RecyclerView实现瀑布流(2)
- iOS开发UI篇—自定义瀑布流控件(cell的循环利用)
- iOS开发UI篇—自定义瀑布流控件(cell的事件处理)
- 瀑布流的DEMO
- 瀑布流的实现
- Linux2.6 内核的 Initrd 机制解析
- vector shrink_to_fit
- poj 2299 Ultra-QuickSort
- leetcode: Search Insert Position
- 你的第一个中断程序!
- UI-瀑布流的做法!
- Java基础知识的三十个经典问答
- 以案例说明SharedPreferences的基本用法
- matlab以字符串读取文件探索
- 在Mac下安装使用OpenCV
- IT族如何正确保护眼睛
- 全栈JavaScript之路( 二十 )HTML5 插入 html标记 ( 二 )insertAdjacentHTML
- 网页图片切换代码
- Linux初步学习三