1
我們在這裏有一個非常定製的UITableViewCell。因此,它基本上是這樣的:保持UITableViewCell的背景視圖忽略單元格邊界
+----------------+
+ Image view +
+ (230px height) +
+----------------+
+ Content +
+ Content +
+ Overall 340px +
+----------------+
我想要做的是:一個背景圖片添加到開始,在此圖像結束,也結束了小區的情況下表格單元結束(無背景重複或任何東西)。
所以這是我做過什麼:
// Custom UITableViewCell class, this is part of a method that gets called
// in an overriden -layoutSubviews
UIImage *watermarkImage = [UIImage imageNamed:@"myBackground.png"];
int watermarkWidth = watermarkImage.size.width;
int watermarkHeight = watermarkImage.size.height;
int watermarkX = screenWidth - watermarkWidth;
int watermarkY = imageView.frame.size.height + 10;
CGRect watermarkFrame = CGRectMake(watermarkX, watermarkY, watermarkWidth, watermarkHeight);
UIImageView *watermarkImageView = [[UIImageView alloc] initWithFrame:watermarkFrame];
[watermarkImageView setImage:watermarkImage];
[self setBackgroundView:watermarkImageView];
這工作得很好,除了一個事實,即圖像比CGRect
更大,因此比細胞本身更大。這會導致backgroundView與下面的單元格重疊,這看起來相當醜陋。
我能做些什麼來使backgroundView尊重單元格邊界?將clipsToBounds
設置爲YES不起作用。
設置幀?在'self'(TableViewCell)或'watermarkImageView'上? – thomas
我在'self.backgroundView'和'watermarkImageView'上試過了。如果它只在「自己」設置爲YES時才起作用? –
我會在'self'上啓用裁剪,因爲子視圖'backgroundView'太大。另外:我會使用'[[UImageView alloc] initWithImage]'並在設置'frame'之後(不要設置frame,因爲cell可能也設置了frame) – thomas