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

首頁 > 學院 > 開發設計 > 正文

[iOS微博項目-4.0]-自定義微博cell

2019-11-14 19:31:33
字體:
來源:轉載
供稿:網友
A.自定義微博cell基本結構
1.需求
  • 創建自定義cell的雛形
  • cell包含:內容、工具條
  • 內容包含:原創內容、轉發內容
 
Image(141)
 
2.思路
  • 使用分層控件,逐層實現
  • 分離model和view
  • model:數據模型、frame模型
  • view:就是控件本身
  • frame模型:包含數據模型和子控件frame
  • 根據數據模型來決定子控件是否顯示(例如轉發內容)
 
cell的view設計雛形:
Image(142)
 
控件的成員屬性層次:
Image(143)
 
3.實現
(1)創建cell和基本的子控件view
Image(144)
 
Image(145)
 
(2)初始化cell,添加內容控件和工具條控件
 1 // 2 //  HVWStatusCell.m 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import "HVWStatusCell.h"10 #import "HVWStatusContentView.h"11 #import "HVWStatusToolbar.h"12 13 @interface HVWStatusCell()14 15 /** 微博內容控件 */16 @PRoperty(nonatomic, weak) HVWStatusContentView *statusContentView;17 18 /** 微博工具條控件 */19 @property(nonatomic, weak) HVWStatusToolbar *toolbar;20 21 @end22 23 @implementation HVWStatusCell24 25 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {26     self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];27    28     if (self) { // 初始化子控件開始29         // 初始化微博內容控件30         [self setupStatusContentView];31        32         // 初始化工具條控件 */33         [self setupToolbar];34     }35    36     return self;37 }38 39 /** 初始化微博內容控件 */40 - (void) setupStatusContentView {41     HVWStatusContentView *statusContentView = [[HVWStatusContentView alloc] init];42     self.statusContentView = statusContentView;43     [self.contentView addSubview:statusContentView];44 }45 46 /** 初始化工具條控件 */47 - (void) setupToolbar {48     HVWStatusToolbar *toolbar = [[HVWStatusToolbar alloc] init];49     self.toolbar = toolbar;50     [self.contentView addSubview:toolbar];51 }52 53 @end
 
(3)初始化內容view
 1 // 2 //  HVWStatusContentView.m 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import "HVWStatusContentView.h"10 #import "HVWStatusOriginalView.h"11 #import "HVWStatusRetweetedView.h"12 13 @interface HVWStatusContentView()14 15 /** 原創內容 */16 @property(nonatomic, weak) HVWStatusOriginalView *originalView;17 18 /** 轉發內容 */19 @property(nonatomic, weak) HVWStatusRetweetedView *retweetedView;20 21 @end22 23 @implementation HVWStatusContentView24 25 - (instancetype)initWithFrame:(CGRect)frame {26     self = [super initWithFrame:frame];27    28     if (self) { // 初始化子控件開始29         // 初始化原創內容控件30         [self setupOriginalView];31        32         // 初始化轉發內容控件33         [self setupRetweetedView];34     }35    36     return self;37 }38 39 /** 初始化原創內容控件 */40 - (void) setupOriginalView {41    42 }43 44 /** 初始化轉發內容控件 */45 - (void) setupRetweetedView {46    47 }48 49 @end
 
B.cell內部子控件
1.需求
根據微博iOS版,分析一個cell里面有哪些子控件,并實現
 
2.思路
在每個view里面添加子控件
Image(146)
 
3.實現
(1)第1層 cell
 1 // 2 //  HVWStatusCell.h 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import <UIKit/UIKit.h>10 11 @interface HVWStatusCell : UITableViewCell12 13 + (instancetype) cellWithTableView:(UITableView *)tableView;14 15 @end
 
 1 // 2 //  HVWStatusCell.m 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import "HVWStatusCell.h"10 #import "HVWStatusContentView.h"11 #import "HVWStatusToolbar.h"12 13 @interface HVWStatusCell()14 15 /** 微博內容控件 */16 @property(nonatomic, weak) HVWStatusContentView *statusContentView;17 18 /** 微博工具條控件 */19 @property(nonatomic, weak) HVWStatusToolbar *toolbar;20 21 @end22 23 @implementation HVWStatusCell24 25 /** 創建 */26 + (instancetype) cellWithTableView:(UITableView *)tableView {27     static NSString *ID = @"HVWStatusCell";28     HVWStatusCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];29    30     if (nil == cell) {31         cell = [[self alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];32     }33    34     return cell;35 }36 37 /** 初始化 */38 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {39     self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];40    41     if (self) { // 初始化子控件開始42         // 初始化微博內容控件43         [self setupStatusContentView];44        45         // 初始化工具條控件 */46         [self setupToolbar];47     }48    49     return self;50 }51 52 /** 初始化微博內容控件 */53 - (void) setupStatusContentView {54     HVWStatusContentView *statusContentView = [[HVWStatusContentView alloc] init];55     self.statusContentView = statusContentView;56     [self.contentView addSubview:statusContentView];57 }58 59 /** 初始化工具條控件 */60 - (void) setupToolbar {61     HVWStatusToolbar *toolbar = [[HVWStatusToolbar alloc] init];62     self.toolbar = toolbar;63     [self.contentView addSubview:toolbar];64 }65 66 @end
 
(2)第二層
a.微博內容
 1 // 2 //  HVWStatusContentView.h 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import <UIKit/UIKit.h>10 11 @interface HVWStatusContentView : UIView12 13 @end
 
 1 // 2 //  HVWStatusContentView.m 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import "HVWStatusContentView.h"10 #import "HVWStatusOriginalView.h"11 #import "HVWStatusRetweetedView.h"12 13 @interface HVWStatusContentView()14 15 /** 原創內容 */16 @property(nonatomic, weak) HVWStatusOriginalView *originalView;17 18 /** 轉發內容 */19 @property(nonatomic, weak) HVWStatusRetweetedView *retweetedView;20 21 @end22 23 @implementation HVWStatusContentView24 25 - (instancetype)initWithFrame:(CGRect)frame {26     self = [super initWithFrame:frame];27    28     if (self) { // 初始化子控件開始29         // 初始化原創內容控件30         [self setupOriginalView];31        32         // 初始化轉發內容控件33         [self setupRetweetedView];34     }35    36     return self;37 }38 39 /** 初始化原創內容控件 */40 - (void) setupOriginalView {41    42 }43 44 /** 初始化轉發內容控件 */45 - (void) setupRetweetedView {46    47 }48 49 @end
 
b.工具條
 1 // 2 //  HVWStatusToolbar.h 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import <UIKit/UIKit.h>10 11 @interface HVWStatusToolbar : UIView12 13 @end
 
 1 // 2 //  HVWStatusToolbar.m 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import "HVWStatusToolbar.h"10 11 @implementation HVWStatusToolbar12 13 /** 代碼自定義初始化方法 */14 - (instancetype)initWithFrame:(CGRect)frame {15     self = [super initWithFrame:frame];16    17     if (self) {18         self.backgroundColor = [UIColor greenColor];19     }20    21     return self;22 }23 24 @end
 
(3)第3層
a.原創微博
 1 // 2 //  HVWStatusOriginalView.h 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import <UIKit/UIKit.h>10 11 @interface HVWStatusOriginalView : UIView12 13 @end
 
 1 // 2 //  HVWStatusOriginalView.m 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import "HVWStatusOriginalView.h"10 11 @interface HVWStatusOriginalView()12 13 /** 昵稱 */14 @property(nonatomic, weak) UILabel *nameLabel;15 16 /** 頭像 */17 @property(nonatomic, weak) UIImageView *iconView;18 19 /** 微博發表時間 */20 @property(nonatomic, weak) UILabel *timeLabel;21 22 /** 微博來源 */23 @property(nonatomic, weak) UILabel *sourceLabel;24 25 /** 微博文本內容 */26 @property(nonatomic, weak) UILabel *textLabel;27 28 @end29 30 @implementation HVWStatusOriginalView31 32 33 /** 代碼初始化方法 */34 - (instancetype)initWithFrame:(CGRect)frame {35     self = [super initWithFrame:frame];36    37     if (self) { // 初始化子控件開始38         // 昵稱39         UILabel *nameLabel = [[UILabel alloc] init];40         nameLabel.font = HVWStatusOriginalNameFont;41         self.nameLabel = nameLabel;42         [self addSubview:nameLabel];43        44         // 頭像45         UIImageView *iconView = [[UIImageView alloc] init];46         self.iconView = iconView;47         [self addSubview:iconView];48        49         // 發表時間50         UILabel *timeLabel = [[UILabel alloc] init];51         self.timeLabel = timeLabel;52         [self addSubview:timeLabel];53        54         // 來源55         UILabel *sourceLabel = [[UILabel alloc] init];56         self.sourceLabel = sourceLabel;57         [self addSubview:sourceLabel];58        59         // 正文60         UILabel *textLabel = [[UILabel alloc] init];61         self.textLabel = textLabel;62         [self addSubview:textLabel];63     }64    65     return self;66 }67 68 @end
 
b.轉發微博
 1 // 2 //  HVWStatusRetweetedView.h 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import <UIKit/UIKit.h>10 11 @interface HVWStatusRetweetedView : UIView12 13 @end
 
 1 // 2 //  HVWStatusRetweetedView.m 3 //  HVWWeibo 4 // 5 //  Created by hellovoidworld on 15/2/12. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import "HVWStatusRetweetedView.h"10 11 @interface HVWStatusRetweetedView()12 13 /** 昵稱 */14 @property(nonatomic, weak) UILabel *nameLabel;15 16 /** 微博文本內容 */17 @property(nonatomic, weak) UILabel *textLabel;18 19 @end20 21 @implementation HVWStatusRetweetedView22 23 /** 代碼初始化方法 */24 - (instancetype)initWithFrame:(CGRect)frame {25     self = [super initWithFrame:frame];26    27     if (self) { // 初始化子控件開始28         // 昵稱29         UILabel *nameLabel = [[UILabel alloc] init];30         nameLabel.font = HVWStatusOriginalNameFont;31         self.nameLabel = nameLabel;32         [self addSubview:nameLabel];33        34         // 正文35         UILabel *textLabel = [[UILabel alloc] init];36         self.textLabel = textLabel;37         [self addSubview:textLabel];38     }39    40     return self;41 }42 43 @end
 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日日噜噜噜夜夜爽亚洲精品| 欧美高清videos高潮hd| 日韩免费不卡av| 亚洲人成绝费网站色www| 欧美综合第一页| 欧美日韩裸体免费视频| 日韩av影院在线观看| 高清欧美性猛交xxxx黑人猛交| 亚洲精品aⅴ中文字幕乱码| 日韩久久午夜影院| 成人疯狂猛交xxx| 久久久久久久亚洲精品| 国产免费一区二区三区在线观看| 亚洲人成免费电影| 国产激情久久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩亚洲一区二区| 国产精品久久久久久亚洲调教| 国产精品久久久999| 亚洲欧美日韩网| 久久亚洲成人精品| 国产免费一区二区三区在线观看| 美日韩精品视频免费看| 国产精品视频一区二区高潮| 国产精品视频中文字幕91| 成人免费视频网址| 日韩精品视频观看| 日日摸夜夜添一区| 日韩美女在线播放| 精品毛片网大全| 久久久国产精品一区| 亚洲国产日韩欧美在线动漫| 亚洲永久在线观看| 4438全国亚洲精品在线观看视频| 亚洲一区二区三区sesese| 久久精品99国产精品酒店日本| 中文字幕自拍vr一区二区三区| 久久99久久99精品免观看粉嫩| 欧美中文在线视频| 亚洲自拍av在线| 久久精品电影网站| 久久在精品线影院精品国产| 日韩av在线看| 欧美国产中文字幕| 懂色av中文一区二区三区天美| 日本精品久久久| 少妇高潮 亚洲精品| 久久久免费观看视频| 亚洲综合视频1区| 日韩成人在线免费观看| xvideos国产精品| 欧美极品在线播放| 欧美日韩免费观看中文| 欧美日韩国产va另类| 色妞欧美日韩在线| 高潮白浆女日韩av免费看| 菠萝蜜影院一区二区免费| 91精品国产网站| 九九九久久久久久| 国产美女扒开尿口久久久| 亚洲日本中文字幕| 欧美精品videofree1080p| 欧美激情女人20p| 在线观看国产精品日韩av| 久久香蕉精品香蕉| 国产精品情侣自拍| 热99精品只有里视频精品| 黄色一区二区在线观看| 国产深夜精品福利| 亚洲欧美精品一区| 国产区亚洲区欧美区| 国a精品视频大全| 国产欧美一区二区三区视频| 九九视频直播综合网| 日产精品99久久久久久| 久久精品夜夜夜夜夜久久| 欧美久久精品午夜青青大伊人| 国产精品国产三级国产aⅴ浪潮| 成人在线视频网站| 色狠狠久久aa北条麻妃| 国产日韩欧美在线看| 国产一区二区三区视频免费| 欧美黄色www| 91亚洲va在线va天堂va国| 欧美老女人性视频| 91精品在线播放| 日韩中文理论片| 狠狠爱在线视频一区| 国产精品福利在线观看网址| 97成人超碰免| 97精品国产97久久久久久| 亚洲tv在线观看| 91精品国产自产91精品| 欧美日产国产成人免费图片| 亚洲欧美日韩中文在线| 亚洲成色777777在线观看影院| 亚洲色图综合久久| 亚洲一区二区在线播放| 久久久在线免费观看| 国产日韩欧美91| 日韩在线视频免费观看高清中文| 久久视频这里只有精品| 亚洲人成电影网站色www| 91久久久久久久一区二区| 一本大道久久加勒比香蕉| 播播国产欧美激情| 国产精品情侣自拍| 久久久久久国产三级电影| 中文字幕亚洲综合久久| 中文字幕亚洲综合久久筱田步美| 伊人久久久久久久久久| 亚洲成人激情在线| 国产精品99蜜臀久久不卡二区| 亚洲一级黄色av| 日韩在线免费观看视频| 欧美日韩另类在线| 日韩欧美999| 欧美激情精品久久久| 国自产精品手机在线观看视频| www.久久久久久.com| 欧美日韩精品在线观看| 中文字幕免费国产精品| 午夜欧美大片免费观看| 久久久午夜视频| 狠狠久久亚洲欧美专区| 亚洲一区二区在线| 欧美精品久久久久| 亚洲一区999| 精品国产一区二区三区久久久| 麻豆国产va免费精品高清在线| 亚洲欧美一区二区精品久久久| 久久久久久久影视| 欧美日韩在线视频一区二区| 国产成人中文字幕| 久久精品亚洲94久久精品| 欧美日韩免费看| 日本精品一区二区三区在线播放视频| 久久国产精品久久久| 色吧影院999| 日本久久亚洲电影| 日韩最新免费不卡| 欧美日韩在线免费| 日韩欧美有码在线| 亚洲精品日韩丝袜精品| 欧美激情中文网| 亚洲美女av在线| 一区二区三区久久精品| 欧美xxxx做受欧美| 国产欧美亚洲视频| 国产一区二区香蕉| 一区二区成人av| 久久亚洲电影天堂| 久久精品99国产精品酒店日本| 久久久爽爽爽美女图片| 欧美一级淫片播放口| 午夜精品三级视频福利| 久热精品在线视频| 欧美一区二区三区免费视| 日韩的一区二区| 91超碰中文字幕久久精品| 日韩第一页在线| 国产精品女主播视频| 91欧美精品午夜性色福利在线| 最新的欧美黄色|