I have this table whose cells look like this:
As you can see, the top border of every cell is supposed to overlap with the cell above. Right now, this border is part of the background (no overlapping so far).
现在,我已把边界与背景分开,我的手机制作法也认为:
#define QAImage(NAME) [[[UIImageView alloc] initWithImage:[UIImage imageNamed:NAME]] autorelease]
- (UITableViewCell*) tableView:(UITableView*)table cellForRowAtIndexPath:(NSIndexPath*)index
{
UITableViewCell *cell = [table dequeueReusableCellWithIdentifier:@"Entry"];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:@"Entry"] autorelease];
cell.backgroundView = QAImage(@"bg-cell.png");
cell.selectedBackgroundView = QAImage(@"bg-cell-sel.png");
cell.selectionStyle = UITableViewCellSelectionStyleGray;
UIImageView *img = QAImage(@"disclosure.png");
img.highlightedImage = [UIImage imageNamed:@"disclosure-sel.png"];
cell.accessoryView = img;
CGRect r = cell.frame;
r.size.height = table.rowHeight;
r.size.width = table.frame.size.width;
cell.frame = r;
r = cell.contentView.frame;
r.origin = CGPointMake(13, 13);
r.size.width -= 8 + img.frame.size.width;
r.size.height -= 25;
[cell.contentView addSubview:[[[TagView alloc] initWithFrame:r] autorelease]];
img = QAImage(@"cell-top.png");
img.highlightedImage = [UIImage imageNamed:@"cell-top-sel.png"];
img.opaque = NO;
r = img.frame;
r.origin = CGPointMake(0, 1 - r.size.height); // The (supposed) overlapping happens here.
img.frame = r;
cell.contentView.clipsToBounds = NO;
[cell.contentView addSubview:img];
}
// Here I set the title. (omitted)
return cell;
}
问题在于,只有当表上出现Im滚动时,边界才会显示出来,否则边界本身就会被上面的牢房重叠。 (错过路)。
I ve Trial [cell setNeedsDisplay]
in -tableView:willDisplayCell:forRowAtIndexPath:
,在要求设立单位时添加边界(cell-top.png
)(这显然会导致多幅绘画和 does;无论怎样,它仍能解决我的问题)和制定
我怎么能强迫UIImage 的意见永远保持下去?