UITableViewCell,其自定义selectedBackgroundView比UISplitViewController上的主视图控制器宽

时间:2013-04-08 19:58:45

标签: ios ipad uisplitviewcontroller

我有一个带有UISplitViewController的iPad应用程序始终显示在横向上。它的主控制器是一个UITableViewController。

我想让这个UITableViewController上的单元格的selectedBackgroundView溢出到详细的ViewController中。像这样:

image

我怎样才能做到这一点?
如果我尝试设置红色箭头图像(宽度为342px),则会将其调整为320px 我也试过继承UIImageView并重写setFrame来忽略任何试图调整图像大小的调用,但仍然没有运气。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

(在2013-10-01更新,使其适用于iOS7)

感谢用户Erway Software帮助我。

以下是我如何使用代码:

在UITableViewController上:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // ...
    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"someId"];
    UIImage *image = [UIImage imageNamed:@"image_name"];
    SelectionImageView *imageView = [[SelectionImageView alloc] initWithImage:image];
    [cell setSelectedBackgroundView:imageView];

    [tableView setClipsToBounds:NO];
    [[[cell contentView] superview] setClipsToBounds:NO];
    // ...
}

以下是SelectionImageView的代码:

@interface SelectionImageView : UIImageView

@end


@implementation SelectionImageView

- (void)setFrame:(CGRect)frame
{
    // 342 is the width of image_name
    if (frame.size.width == 342.f) {
        [super setFrame:frame];
    }
}

@end