亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS實現UITableView數據為空時的提示頁面

2020-07-26 03:05:00
字體:
來源:轉載
供稿:網友

前言

相信對于iOS開發者們來說,在開發過程中,經常用UITableView,一定會遇到數據為空的情況,這時需要在空頁面上放一個圖片和一行文字提示數據為空,下面整理了兩種方法來實現這個功能。

第一個是繼承UITableView,在新類中集成圖片和文字

#import <UIKit/UIKit.h>#import "Const.h"@interface WFEmptyTableView : UITableView@property (nonatomic, assign) BOOL showEmptyTipView; // 是否顯示背景提示文字@property (nonatomic, assign) NSInteger vOffset;@property (nonatomic, copy) NSString *tipString;  // 提示文字@property (nonatomic, copy) NSString *tipImageName; // 提示圖片@end

具體實現

#import "WFEmptyTableView.h"@implementation WFEmptyTableView { UIView *_customBackView; UIImageView *_tipImageView; UILabel *_label; CGRect _imageFrame; CGRect _labelFrame; double _scale;}- (WFEmptyTableView *)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { self = [super initWithFrame:frame style:style]; if (self) {  [self setupViews]; } return self;}- (void)setupViews { _customBackView = [[UIView alloc] initWithFrame:self.frame]; _customBackView.backgroundColor = [UIColor yellowColor]; _tipImageView = [[UIImageView alloc] initWithFrame:CGRectMake((kScreenWidth-200/2)/2, self.frame.size.height/3, 200/2, 200/2)]; [_customBackView addSubview:_tipImageView]; _imageFrame = _tipImageView.frame; _label = [[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(_tipImageView.frame), kScreenWidth, 100)]; _label.backgroundColor = [UIColor clearColor]; _label.textAlignment = NSTextAlignmentCenter; _label.textColor = [UIColor lightGrayColor]; _label.font = [UIFont systemFontOfSize:16]; _label.lineBreakMode = NSLineBreakByCharWrapping; _label.numberOfLines = 0; [_customBackView addSubview:_label]; _labelFrame = _label.frame;}- (void)setShowEmptyTipView:(BOOL)showEmptyTipView { _showEmptyTipView = showEmptyTipView; if (showEmptyTipView) {  [self addSubview:_customBackView]; } else {  [_customBackView removeFromSuperview]; }}- (void)setTipString:(NSString *)tipString { _tipString = tipString; NSMutableAttributedString * attributedString1 = [[NSMutableAttributedString alloc] initWithString:tipString]; NSMutableParagraphStyle * paragraphStyle1 = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle1 setLineSpacing:15]; [paragraphStyle1 setAlignment:NSTextAlignmentCenter]; [attributedString1 addAttribute:NSParagraphStyleAttributeName value:paragraphStyle1 range:NSMakeRange(0, [tipString length])]; [_label setAttributedText:attributedString1]; [self resetFrame];}- (void)setTipImageName:(NSString *)tipImageName { _scale = 1; UIImage *image = [UIImage imageNamed:tipImageName]; _scale = image.size.height*1.0 / image.size.width; _tipImageView.image = image; if (isnan(_scale)) {  _scale = 1; } [self resetFrame];}- (void)setVOffset:(NSInteger)vOffset { _label.frame = CGRectMake(CGRectGetMinX(_label.frame), CGRectGetMinY(_label.frame)+vOffset, CGRectGetWidth(_label.frame), CGRectGetHeight(_label.frame)); _tipImageView.frame = CGRectMake(CGRectGetMinX(_tipImageView.frame), CGRectGetMinY(_tipImageView.frame)+vOffset, CGRectGetWidth(_tipImageView.frame), CGRectGetHeight(_tipImageView.frame));}- (void)resetFrame { _tipImageView.frame = CGRectMake(0, CGRectGetMinY(_tipImageView.frame), 150, 150 * _scale); _tipImageView.center = CGPointMake(kScreenWidth / 2.0, _tipImageView.center.y); _label.frame = CGRectMake(CGRectGetMinX(_label.frame), CGRectGetMaxY(_tipImageView.frame), CGRectGetWidth(_label.frame), CGRectGetHeight(_label.frame));}@end

還有一種方法,是用Category

#import <UIKit/UIKit.h>@interface UITableView (WFEmpty)@property (nonatomic, strong, readonly) UIView *emptyView;-(void)addEmptyViewWithImageName:(NSString*)imageName title:(NSString*)title;@end

具體實現

#import "UITableView+WFEmpty.h"#import <objc/runtime.h>static char UITableViewEmptyView;@implementation UITableView (WFEmpty)@dynamic emptyView;- (UIView *)emptyView{ return objc_getAssociatedObject(self, &UITableViewEmptyView);}- (void)setEmptyView:(UIView *)emptyView{ [self willChangeValueForKey:@"HJEmptyView"]; objc_setAssociatedObject(self, &UITableViewEmptyView,        emptyView,        OBJC_ASSOCIATION_ASSIGN); [self didChangeValueForKey:@"HJEmptyView"];}-(void)addEmptyViewWithImageName:(NSString*)imageName title:(NSString*)title{ if (!self.emptyView) {  CGRect frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);  UIImage* image = [UIImage imageNamed:imageName];  NSString* text = title;  UIView* noMessageView = [[UIView alloc] initWithFrame:frame];  noMessageView.backgroundColor = [UIColor clearColor];  UIImageView *carImageView = [[UIImageView alloc] initWithFrame:CGRectMake((frame.size.width-image.size.width)/2, 60, image.size.width, image.size.height)];  [carImageView setImage:image];  [noMessageView addSubview:carImageView];  UILabel *noInfoLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 160, frame.size.width, 20)];  noInfoLabel.textAlignment = NSTextAlignmentCenter;  noInfoLabel.textColor = [UIColor lightGrayColor];  noInfoLabel.text = text;  noInfoLabel.backgroundColor = [UIColor clearColor];  noInfoLabel.font = [UIFont systemFontOfSize:20];  [noMessageView addSubview:noInfoLabel];  [self addSubview:noMessageView];  self.emptyView = noMessageView; }}@end

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久91精品国产一区不卡| 国产精品视频不卡| 日韩一区二区在线视频| 国产精品一区二区三区免费视频| 国产精品视频公开费视频| 国产精品黄页免费高清在线观看| 在线视频欧美日韩| 中文字幕欧美精品日韩中文字幕| 国产成人avxxxxx在线看| 亚洲欧洲国产伦综合| 国产女同一区二区| 久久久久久亚洲精品不卡| 亚洲人成电影在线播放| 性视频1819p久久| 国产精品网站视频| 欧美午夜宅男影院在线观看| 国产成人精品久久久| 久久国产精品免费视频| 久久综合色88| 欧美大片免费观看在线观看网站推荐| 中文字幕亚洲综合久久筱田步美| 亚洲成人免费在线视频| 亚洲精品福利在线观看| 国产精品视频公开费视频| 91精品久久久久久久久久入口| 国产精品视频yy9099| 欧美午夜片欧美片在线观看| 国产精品日韩久久久久| 久久久av亚洲男天堂| 亚洲精品第一国产综合精品| 亚洲国产精品va在看黑人| 欧美孕妇毛茸茸xxxx| 久久偷看各类女兵18女厕嘘嘘| 精品国产一区二区三区久久久狼| 91久久精品一区| 亚洲欧美国产精品| 国产精品揄拍一区二区| 尤物九九久久国产精品的特点| 91在线观看免费高清完整版在线观看| 欧美视频在线观看免费网址| 日韩免费av片在线观看| 亚洲国产99精品国自产| 久久人人爽人人爽爽久久| 不卡av电影院| 久久99精品国产99久久6尤物| 91在线观看免费观看| 日韩高清电影免费观看完整版| 日韩在线视频观看| 日本久久精品视频| 欧美一区二区三区免费观看| 美女国内精品自产拍在线播放| 国产精品高潮呻吟视频| 欧美大片大片在线播放| 亚洲天堂第一页| 国产精品一香蕉国产线看观看| 国产日韩欧美另类| 在线播放国产一区中文字幕剧情欧美| 欧美精品情趣视频| 黄色精品在线看| 日韩视频免费在线| 日本aⅴ大伊香蕉精品视频| 亚洲尤物视频网| 97超级碰碰人国产在线观看| 日韩av123| 久久久久久久一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整| www.午夜精品| 欧美日韩国产成人高清视频| 亚洲黄一区二区| 中文字幕亚洲图片| 国产成人精品日本亚洲| 亚洲最新在线视频| 宅男66日本亚洲欧美视频| 久久精品国产亚洲精品2020| 91精品国产自产91精品| 国产成人a亚洲精品| 欧美老女人bb| 色婷婷av一区二区三区久久| 欧美日韩国产丝袜另类| 久久精品国亚洲| 国产欧美一区二区三区久久| 正在播放欧美视频| 九九精品在线视频| 日韩在线欧美在线国产在线| 色婷婷综合久久久久| 91成人天堂久久成人| 日韩在线观看免费全集电视剧网站| 亚洲色图第一页| 亚洲欧美一区二区精品久久久| 亚洲国产美女久久久久| 成人在线免费观看视视频| 国产精品一区二区三区久久| 午夜精品久久久久久久99热| 国产日韩欧美中文在线播放| 久久久久久18| 日韩在线高清视频| 成人欧美在线视频| 美乳少妇欧美精品| 欧美中文在线观看国产| 国产欧美日韩91| 国产欧美一区二区三区在线| 亚洲美女精品久久| 国产日韩在线亚洲字幕中文| 国产精品v日韩精品| 亚洲人精选亚洲人成在线| 91色琪琪电影亚洲精品久久| 久久久久久久久久久久久久久久久久av| 国产精品国产三级国产aⅴ浪潮| 欧美电影免费观看高清完整| 欧美日韩在线免费观看| 国产精品久久久久久亚洲调教| 亚洲成人国产精品| 久久在线精品视频| 精品久久久久久久久国产字幕| 亚洲3p在线观看| 欧美猛交ⅹxxx乱大交视频| 日韩av理论片| 亚洲国产精品va在线看黑人| 成年无码av片在线| 国产精品久久精品| 国产精品成久久久久三级| 欧美久久精品一级黑人c片| 国产精品午夜一区二区欲梦| 国产拍精品一二三| 欧美日韩不卡合集视频| 538国产精品一区二区在线| 日韩av一卡二卡| 国产成人精品国内自产拍免费看| 日韩av一区在线观看| 日韩av在线资源| 中文字幕v亚洲ⅴv天堂| 中文字幕欧美日韩精品| 日韩在线观看你懂的| 亚洲在线免费视频| 成人免费观看a| 国产精品丝袜高跟| 国产成人拍精品视频午夜网站| 亚洲国产精品久久久| 国产欧美一区二区白浆黑人| 成人女保姆的销魂服务| 久久艹在线视频| 日韩成人网免费视频| 久99九色视频在线观看| 亚洲日韩第一页| 日韩精品免费在线观看| 欧美肥老太性生活视频| 97精品国产97久久久久久| 国产九九精品视频| 国产97人人超碰caoprom| 成人福利视频在线观看| 亚洲午夜小视频| 美女啪啪无遮挡免费久久网站| 国产精品极品美女在线观看免费| 国产97在线|日韩| 日韩美女视频免费看| 亚洲一区二区日本| 国产盗摄xxxx视频xxx69| 午夜精品久久久久久久白皮肤| 久久天天躁狠狠躁夜夜av| 国产美女久久精品香蕉69| 国产原创欧美精品| 亚洲午夜av久久乱码| 777精品视频| 久久综合五月天|