네이티브 iPhone 앱용으로 사용자 정의 tableview (jQuery Mobile의 디자인을 기반으로)를 디자인했습니다. tableview는 UITableView
내의 배경 이미지로 사용할 수있는 여러 이미지 (헤더, 행 등)로 슬라이스되었습니다. 에있는이 이미지를 사용하여 UITableViewCell
의 backgroundView
이됩니다. 여하튼 어떤 장치에는 아래쪽 여백이 나타납니다.UITableViewCell의 backgroundView (UIImageView) 내에 마진이 생깁니다.
iOS의 tableview 헤더를 사용하지 않기 쉽도록하기 위해. tableview의 모든 것은 (가짜) 헤더를 포함하는 tableview 셀입니다. 각 셀의 높이는 배경 이미지의 높이와 일치합니다. 모든보기는 프로그래밍 방식으로 설정되므로 문제를 일으킬 수있는 숨겨진 항목이 XIB 파일에 없습니다.
UITableViewStylePlain
인 UITableView
을 사용합니다. 일반 구분이 표시되는 것을 방지하기 위해, 나는 내있는 tableview 컨트롤러의 viewDidLoad
방법이 코드를 사용
init
방법에서
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
(서브 클래스)의 tableview 세포는,이 같은 배경 이미지를 적용
UIImage *backgroundImage = [UIImage imageNamed:@"Word.png"];
self.backgroundView = [[UIImageView alloc] initWithImage:backgroundImage];
iOS 시뮬레이터 (iOS 5.0 및 5.1)와 iPhone 및 iPad (iOS 6 모두)에서 완벽하게 작동합니다. 그러나 내 클라이언트의 iPhone (iOS 5.1.1)에서는 배경 이미지가 테이블 뷰 셀보다 2 배 빠릅니다. 이로 인해 수평선이 보입니다.
self.backgroundView.backgroundColor = [UIColor orangeColor];
self.backgroundColor = [UIColor yellowColor];
: 전체 이미지에 대한
클릭는
쉽게 디버깅을 만들려면 , 나는 세포와이 같은 layoutSubviews
방법에서의 배경 뷰에 배경 색상을 추가
frame
및
bounds
을 로깅하여 확인됩니다.
여기에 무슨 문제가 있는지 잘 모르겠습니다. 모든 UITableViewCells는 배경 이미지와 정확히 동일한 크기입니다. 모든 이미지에는 정확하게 두 배 더 큰 Retina @2x
변종이 있습니다.
누군가가 잘못되어 가고 있기를 바랍니다. 당신이 뭔가를 시도 할 필요가 있다면, 코멘트를 게시하십시오. 또한 iOS 5.1.1이 설치된 다른 장치를 찾으려고합니다.
이것은 해결책이었습니다. 고마워요! (이상한 일 : 압축을 사용하지 않으면 앱이 40KB 작아졌습니다.그것은 하나의 잘못된 압축 알고리즘입니다.) – Jonathan