ibooks와 유사한 도서 목록 형식을 위한 UItable ViewCell 사용자 정의

3132 단어 아이폰 문제
며칠 전에 iBooks와 유사한 도서 목록 형식을 실현했는데 share의 효과는 다음과 같다.
주요 코드 원리 구현:
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

좋은 웹페이지 즐겨찾기