2012-08-06 3 views
1

네이티브 iPhone 앱용으로 사용자 정의 tableview (jQuery Mobile의 디자인을 기반으로)를 디자인했습니다. tableview는 UITableView 내의 배경 이미지로 사용할 수있는 여러 이미지 (헤더, 행 등)로 슬라이스되었습니다. 에있는이 이미지를 사용하여 UITableViewCellbackgroundView이됩니다. 여하튼 어떤 장치에는 아래쪽 여백이 나타납니다.UITableViewCell의 backgroundView (UIImageView) 내에 마진이 생깁니다.

iOS의 tableview 헤더를 사용하지 않기 쉽도록하기 위해. tableview의 모든 것은 (가짜) 헤더를 포함하는 tableview 셀입니다. 각 셀의 높이는 배경 이미지의 높이와 일치합니다. 모든보기는 프로그래밍 방식으로 설정되므로 문제를 일으킬 수있는 숨겨진 항목이 XIB 파일에 없습니다.

UITableViewStylePlainUITableView을 사용합니다. 일반 구분이 표시되는 것을 방지하기 위해, 나는 내있는 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]; 

: 전체 이미지에 대한

Problem (thumb)

클릭

쉽게 디버깅을 만들려면 , 나는 세포와이 같은 layoutSubviews 방법에서의 배경 뷰에 배경 색상을 추가

일반 셀의 경우 오렌지색과 노란색을 사용했고 헤더 셀의 경우 파란색과 녹색을 사용했습니다. 이미지를 보면 백그라운드보기의 높이가 셀 높이와 같습니다. 이는 두보기 중 framebounds을 로깅하여 확인됩니다.

여기에 무슨 문제가 있는지 잘 모르겠습니다. 모든 UITableViewCells는 배경 이미지와 정확히 동일한 크기입니다. 모든 이미지에는 정확하게 두 배 더 큰 Retina @2x 변종이 있습니다.

누군가가 잘못되어 가고 있기를 바랍니다. 당신이 뭔가를 시도 할 필요가 있다면, 코멘트를 게시하십시오. 또한 iOS 5.1.1이 설치된 다른 장치를 찾으려고합니다.

답변

1

에 대한 빠른 구글 검색 :

있는 UIImageView 하나 개의 픽셀

는 이전에 유래의

설정을 제안 토론 "압축 PNG 파일" "No"로 빌드 설정에서

힘을 반환 이 정확한 문제를 해결하십시오 : iOS 5.1 with Xcode 4.3.1: [UIColor colorWithPatternImage:] strange behavior only on device

+0

이것은 해결책이었습니다. 고마워요! (이상한 일 : 압축을 사용하지 않으면 앱이 40KB 작아졌습니다.그것은 하나의 잘못된 압축 알고리즘입니다.) – Jonathan

관련 문제