日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用tableView实现的一种加载数据的布局

發布時間:2025/6/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用tableView实现的一种加载数据的布局 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用tableView實現的一種加載數據的布局

此博文是應朋友之邀解決他的業務邏輯問題

效果:

素材:

源碼:

ImageCell.h 與?ImageCell.m

// // ImageCell.h // TableView // // Created by YouXianMing on 15/2/1. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import <UIKit/UIKit.h>@interface ImageCell : UITableViewCell@end // // ImageCell.m // TableView // // Created by YouXianMing on 15/2/1. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import "ImageCell.h"@implementation ImageCell- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, -72, 320, 72 * 2)];imageView.image = [UIImage imageNamed:@"1"];[self addSubview:imageView];}return self; }@end

ViewController.m

// // ViewController.m // TableView // // Created by YouXianMing on 15/2/1. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import "ViewController.h" #import "ImageCell.h"#define CELL_FLAG @"Cell" #define IMAG_FLAG @"Imag"typedef enum : NSUInteger {SECTION_ONE = 0,SECTION_TWO,MAX_SECTION, } EViewController;@interface ViewController ()<UITableViewDataSource, UITableViewDelegate>@property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) UIView *blockView;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];CGRect rect = self.view.bounds;rect.origin.y += 72;rect.size.height -= 72;self.tableView = [[UITableView alloc] initWithFrame:rect];self.tableView.delegate = self;self.tableView.dataSource = self;self.tableView.layer.masksToBounds = NO;[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CELL_FLAG];[self.tableView registerClass:[ImageCell class] forCellReuseIdentifier:IMAG_FLAG];[self.view addSubview:self.tableView];self.blockView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 72)];self.blockView.backgroundColor = [UIColor blackColor];self.blockView.alpha = 0.f;[self.view addSubview:self.blockView]; } #pragma mark scrollView位移 - (void)scrollViewDidScroll:(UIScrollView *)scrollView {CGFloat offsetY = scrollView.contentOffset.y;CGFloat percent = offsetY / 72.f;if (percent <= 0) {percent = 0;} else if (percent >= 1) {percent = 1;}self.blockView.alpha = percent; } #pragma mark 每個區row的個數 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {if (section == SECTION_ONE) {return 1;} else if (section == SECTION_TWO) {return 7;} else {return 0;} } #pragma mark 幾個區 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {return MAX_SECTION; } #pragma mark 重用cell - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {if (indexPath.section == SECTION_ONE) {ImageCell *cell = [tableView dequeueReusableCellWithIdentifier:IMAG_FLAG];return cell;} else if (indexPath.section == SECTION_TWO) {UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CELL_FLAG];return cell;} else {return nil;} } #pragma mark 返回headerView - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {if (section == SECTION_ONE) {return nil;} else if (section == SECTION_TWO) {UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];view.backgroundColor = [UIColor redColor];return view;} else {return nil;} } #pragma mark row高度 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {if (indexPath.section == SECTION_ONE) {return 72;} else if (indexPath.section == SECTION_TWO) {return 200;} else {return 0;} } #pragma mark header高度 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {if (section == SECTION_ONE) {return 0.f;} else if (section == SECTION_TWO) {return 40;} else {return 0;} }@end

?

轉載于:https://www.cnblogs.com/YouXianMing/p/4266090.html

總結

以上是生活随笔為你收集整理的用tableView实现的一种加载数据的布局的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久成人网站 | 99精品乱码国产在线观看 | 成人黄色片网站 | 成年人免费高清视频 | 精品人妻一区二区三区浪潮在线 | 日本在线看 | 一级丰满大乳hd高清 | 一级黄色片在线看 | 亚洲熟妇丰满大屁股熟妇 | 久久久久久久久久一区二区三区 | 在线精品观看 | 成人午夜免费电影 | 国产精品社区 | 午夜黄色网| 激情拍拍| 日韩精品在线观看免费 | 欧美三级黄色大片 | 这里只有精品66 | 影音先锋制服丝袜 | 成人免费看片'在线观看 | 肉色丝袜脚交一区二区 | 又黄又爽的视频 | 九草av | 久久久免费高清视频 | 草莓巧克力香氛动漫的观看方法 | 日韩精品一区在线观看 | 亚洲AV无码精品色 | 69视频在线观看免费 | 在线日韩av| 人妻在客厅被c的呻吟 | 自拍偷拍第二页 | 日本精品在线观看视频 | 天堂在线资源网 | 欧美日韩色图片 | 原神女裸体看个够无遮挡 | 91视频一区二区三区 | 欧美激情免费在线 | 中国丰满人妻videoshd | 色婷婷激情网 | 欧美另类69xxxx| 波多野结衣绝顶大高潮 | 日本老妇性生活 | 成人av综合网 | 网红日批视频 | 国产精品乱子伦 | 中文字幕精品久久久久人妻红杏ⅰ | 亚洲一区二区三区四区五区xx | 亚洲一区二区三区四区不卡 | 国产精品入口66mio男同 | 国产精品综合久久 | 人妖干美女 | 日日夜夜艹 | 国产人妖一区二区三区 | 中文在线国产 | 久久午夜精品人妻一区二区三区 | 国产一区欧美日韩 | 最近中文字幕av | 欧美极品在线 | 久久久福利视频 | 免费在线观看的黄色网址 | 天堂av网站 | 久久久久久久久99 | 欧美成人做爰猛烈床戏 | 亚洲天堂资源网 | av番号网 | 日本丰满熟妇bbxbbxhd | 中文字幕亚洲在线观看 | 国产毛片欧美毛片久久久 | 一级片毛片 | 成人一区三区 | 国产人成一区二区三区影院 | 国产精品亚洲欧美 | 狠狠v欧美v日韩v亚洲ⅴ | 亚洲欧美日韩精品久久 | 欧美日韩精品在线 | 在线不卡一区 | 午夜电影你懂的 | 国产成人午夜精品无码区久久 | 午夜色网| 波多野结衣一区二区三区高清 | 九九久久九九久久 | 欧美一级二级三级视频 | 国产精品网页 | 国产精品免费av一区二区三区 | 麻豆changesxxx国产 | 黄色av免费网站 | 亚洲香蕉久久 | www日本com | 天天爽夜夜爽夜夜爽精品视频 | 国产农村老头老太视频 | 九色在线播放 | 久久久久逼 | 极品美女高潮出白浆 | 91精品视频网站 | 欧美r级在线观看 | 日韩视频在线观看视频 | 久久久久二区 | 亚洲第一色播 | 午夜羞羞羞|