2012-08-06 14 views
1

的我設計了一個原生iPhone應用程序的自定義實現代碼如下(基於jQuery Mobile的設計)。桌面視圖被分割成UITableView內用作背景圖像的多個圖像(標題,行等)。我在UIImageView中使用此圖片,該圖片成爲我自定義UITableViewCellbackgroundView。不知何故,某些設備上會出現底部邊距。下邊距出現內backgroundView(的UIImageView)的UITableViewCell

爲了讓事情變得簡單,我不使用iOS的tableview標題。 tableview中的所有東西都是一個tableview單元格,包括(假)標題。每個單元的高度與背景圖像的高度相匹配。所有視圖都以編程方式進行設置,因此XIB文件中沒有隱藏的東西可能會導致問題。

我用一個UITableView風格UITableViewStylePlain。爲了防止被顯示常規分離,我在我的tableview控制器的viewDidLoad方法使用此代碼:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 

在我的自定義的init方法(子類)的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)上,背景圖像比tableview單元低2px。由於這一點,可以看到一條水平線。

Problem (thumb)

點擊查看完整圖片

使調試容易,我加入了背景顏色的細胞和layoutSubviews方法及其背景的觀點是這樣的:

self.backgroundView.backgroundColor = [UIColor orangeColor]; 
self.backgroundColor = [UIColor yellowColor]; 

對於普通的單元格我使用了橙色和黃色,對於標題單元格我使用了藍色和綠色。如果您查看圖像,則會看到背景視圖的高度等於單元格的高度。這通過記錄兩個視圖的framebounds來確認。

我不知道這裏出了什麼問題。所有的UITableViewCells與背景圖像的尺寸完全相同。所有圖像都有Retina @2x變種,它們的尺寸正好是它的兩倍。

希望有人知道這裏出了什麼問題。如果你需要我嘗試一下,請發表評論,我會的。此外,我會嘗試找到一些安裝了iOS 5.1.1的設備,以查看發生了什麼。

回答

1

快速谷歌搜索:

的UIImageView一個像素

返回表明

設置爲「無」,在構建設置先前的#1的討論「壓縮PNG文件」

威力解決這個確切的問題:iOS 5.1 with Xcode 4.3.1: [UIColor colorWithPatternImage:] strange behavior only on device

+0

這是解決方案。非常感謝你! (順便說一句,奇怪的是:禁用壓縮使應用程序縮小了40KB。這是一種不好的壓縮算法。) – Jonathan 2012-08-07 09:29:42

相關問題