2013-07-11 2 views
0

기능과 같은 ibooks 책꽂이를 구현하려고하는데 저는 매우 간단하고 직선적 인 GSBookShelf을 사용합니다.이 버튼은 셀로 버튼을 추가하고 멋지게 작동합니다.사용자 정의 UIView가있는 Tableview에 레이블 겹치기 추가

각 버튼에 몇 개의 라벨을 추가하고 싶지만 한 번에 성공하지만 5 번 중 2 번이 이전 버튼 라벨과 중복됩니다. 일반적으로이 normally like this

같은

는 언젠가이 발생합니다 Sometime this happens

코드 :

- (UIView *)bookShelfView:(GSBookShelfView *)bookShelfView bookViewAtIndex:(NSInteger)index { 

    NSDictionary *currentArticle = [_bookArray objectAtIndex:index]; 

    static NSString *identifier = @"bookView"; 
    MyBookView *bookView = (MyBookView *)[bookShelfView dequeueReuseableBookViewWithIdentifier:identifier]; 
    if (bookView == nil) { 
     bookView = [[MyBookView alloc] initWithFrame:CGRectZero]; 
     bookView.reuseIdentifier = identifier; 
     [bookView addTarget:self action:@selector(bookViewClicked:) forControlEvents:UIControlEventTouchUpInside]; 

    } 
    [bookView setIndex:index]; 
    [bookView setSelected:[(NSNumber *)[_bookStatus objectAtIndex:index] intValue]]; 
    //[bookView setFileName:[currentArticle objectForKey:@"name"] ]; 
    //[bookView setFileName:[currentArticle objectForKey:@"name"] :index]; 

    UIImage *image = nil; 
    image = [self returnCellImagefor:[currentArticle objectForKey:@"imagename"]]; 
    [bookView setBackgroundImage:image forState:UIControlStateNormal]; 

    UILabel *_fileLabel=nil; 
    _fileLabel =[[UILabel alloc] initWithFrame:CGRectMake(0, 180, 200, 46)]; 
    _fileLabel.text=[currentArticle objectForKey:@"name"]; 
    _fileLabel.textColor=[UIColor whiteColor]; 
    _fileLabel.backgroundColor=[UIColor clearColor]; 
    _fileLabel.font = [UIFont fontWithName:@"Gill Sans" size:16]; 
    //_fileLabel.textAlignment=UITextAlignmentCenter; 
    _fileLabel.textAlignment = NSTextAlignmentCenter; 
    _fileLabel.numberOfLines=0; 
    _fileLabel.lineBreakMode = UILineBreakModeWordWrap; 
    [_fileLabel sizeToFit]; 
    [bookView addSubview:_fileLabel]; 

    return bookView; 
} 

이미지들이 겹쳐 결코 좋은 그러나 라벨이 때로는 않습니다.

왜 이런 일이 발생하는지 알고 싶습니다.

답변

1

어디에 bookShelfView 기능을 넣으셨습니까? TableView 코드를 표시하십시오. 내가 가진 문제는 당신이 테이블 bookShelfView에서 아래로 스크롤 할 때 다시 호출된다는 것입니다. 라벨이 두 개의 다른 값에 대해 두 번 생성됩니다. 당신이 중복되는 일이 볼 수있는 유일한 방법

,이를 통해 시작되고 또 다시

_fileLabel =[[UILabel alloc] initWithFrame:CGRectMake(0, 180, 200, 46)]; 

나는 당신의 TableView 코드를 확인합니다. 나는 전에 비슷한 질문을했다. (정확하지 않음). 그것을 확인하십시오 UITableView and UILabel repeating

+0

고마워, 나는 각 라벨에 태그를 붙이며 새 라벨을 할당하기 전에 매번 슈퍼 뷰에서 제거했다. –

관련 문제