ios 인터페이스 디자인 의 사용자 정의 Cell
1. 모델 층 디자인
새 CJActive 파일 CJActive. h 파일 중
@interface CJActive : NSObject
@property (nonatomic, copy) NSString *icon;
@property (nonatomic, copy) NSString *name;
-(instancetype)initWithDic:(NSDictionary *)dic;
+(instancetype)acitveWithDic:(NSDictionary *)dic;
+(NSMutableArray *)activeList;
@end
CJActive. m 파일
-(instancetype)initWithDic:(NSDictionary *)dic{
if (self = [super init]) {
[self setValuesForKeysWithDictionary:dic];
}
return self;
}
+(instancetype)acitveWithDic:(NSDictionary *)dic{
return [[self alloc]initWithDic:dic];
}
+(NSMutableArray *)activeList{
NSArray *dicArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"apps.plist" ofType:nil]];
//
NSMutableArray *arrayM = [NSMutableArray array];
for (NSDictionary *dic in dicArray) {
CJActive *active = [CJActive acitveWithDic:dic];
[arrayM addObject:active];
}
return arrayM;
}
2. View 층 디자인
새 CJActive Cell 류 파일, xib 가 있 습 니 다.CJActive Cell. h 파일 중
@class CJActive;
@interface CJActiveCell : UITableViewCell
@property (nonatomic, strong) CJActive *getData;// ,
+(instancetype) cellWithTableView:(UITableView *)tableView;
@end
CJActive Cell. xib 파일 에서 사용자 정의 cell 디자인 을 하고 하위 컨트롤 은 CJActive Cell. m 에 연 결 됩 니 다.
@interface CJActiveCell()
@property (weak, nonatomic) IBOutlet UIImageView *icon;
@property (weak, nonatomic) IBOutlet UILabel *title;
@end
CJActive Cell. m 에서 두 가지 방법 을 실현 합 니 다.
// cell
+(instancetype)cellWithTableView:(UITableView *)tableView{
static NSString *reuseID= @"activeCell";
//1. cell
CJActiveCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseID];
//2. ,
if (cell == nil) {
cell = [[[NSBundle mainBundle]loadNibNamed:@"CJActiveCell" owner:nil options:nil]lastObject];
}
//3.
return cell;
}
// getData setter , getData , setter ,
// cell , ,
-(void)setGetData:(CJActive *)getData{
_getData = getData;
self.title.text =getData.name;
//.......
} ];
}
3. 컨트롤 러 층 설계
CJActiveController. m 파일 구현
@interface CJActiveController ()
@property (nonatomic, strong) NSArray *activeInfo;// ,
@end
@implementation CJActiveController
//
-(NSArray *)activeInfo{
if (_activeInfo==nil) {
_activeInfo = [CJActive activeList];
}
return _activeInfo;
}
#pragma mark
-(NSInteger)numberOfSectionsInTableView:(nonnull UITableView *)tableView{
return 1;
}
-(NSInteger)tableView:(nonnull UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.activeInfo.count;
}
-(UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath{
//1. cell
CJActiveCell *cell =[CJActiveCell cellWithTableView:tableView];
//2.
CJActive *active = self.activeInfo[indexPath.row];
cell.getData =active;
//3.return
return cell;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.