ibooks와 유사한 도서 목록 형식을 위한 UItable ViewCell 사용자 정의
3132 단어 아이폰 문제
주요 코드 원리 구현:
1: UIt=TableView 객체를 작성할 때 배경 투명, 분리선 투명 설정
// table
tbView.separatorColor = [UIColor clearColor];
// table
tbView.backgroundColor = [UIColor clearColor];
2:tableView:cellForRowAtIndexPath에서cell내용을 그려 도서를 전시합니다.이 기교는 사용자 정의 UIButton으로 도서 그림에 덮어쓰고 이벤트를 클릭하는 것이다.그 중에서 button의 tag를 사용하여 테이블 그룹에 있는 도서의 아래 표시를 저장합니다.
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *identifier = @"etuancell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (!cell) {
//cell = [[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:identifier];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
[cell setAccessoryType:UITableViewCellAccessoryNone];
//
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}else{
// cell , 。
while ([cell.contentView.subviews lastObject] != nil) {
[(UIView*)[cell.contentView.subviews lastObject] removeFromSuperview];
}
}
//
#define kCell_Items_Width 156
#define kCell_Items_Height 230
// 206*306
// 50
// 3,4
CGFloat x = 80;
CGFloat y = 40;
NSInteger nowNum = kNum;
if (bLandScape) {
nowNum += 1;
}
NSInteger row = indexPath.row * nowNum;
//
for (int i = 0; i= [data count]) {
break;
}
//
UIImageView *bookView = [[UIImageView alloc] initWithFrame:CGRectMake(x, y, kCell_Items_Width, kCell_Items_Height)];
NSString *bookName = [[NSString alloc] initWithFormat:@"book%d.png",row];
bookView.image = [UIImage imageNamed:bookName];
[cell.contentView addSubview:bookView];
//
UIButton *bookButton = [UIButton buttonWithType:UIButtonTypeCustom];
bookButton.frame = CGRectMake(x, y, kCell_Items_Width, kCell_Items_Height);
// , button tag, tabledata
bookButton.tag = row;
[bookButton addTarget:self action:@selector(testButton:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:bookButton];
x += (80+kCell_Items_Width);
// row+1
++row;
}
return cell;
}
3:tableView:number OfRowInSection에서 tableview의 row 수량을 동적으로 되돌려줍니다. 그 중에서 kNum은 3입니다.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
NSInteger count = ([data count]+kNum-1)/kNum;
if (bLandScape) {
count = ([data count]+kNum)/(kNum+1);
}
return count;
}
4:더 많은 효과는 소스 코드를 참고하여 다운로드하고 여기를 클릭하세요.질문이나 질문이 있으면 언제든지 연락 주세요.전달은 주석을 달아 주십시오http://blog.csdn.net/ugg