0

我有一个UITableView,我想UIImageView在前景上方放置一个透明的UITableView.

问题是如果我添加UIImageView上面的,UITableView我不能滚动,UITableView因为它在UIImageView.

有没有办法在 aUIImageView之上UITableView并且仍然能够在 a 上滚动UITableView

4

6 回答 6

0

这里是UITable的代码

如果您想在 tableview 下放置背景图像,您可以在viewDidLoadviewWillDidAppear中使用此代码

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"myImage.png"]];

或者

// here you can setting RGB color and Alpha channel
self.tableView.backgroundColor = [UIColor colorWithRed:(255/256.0) green:(255/256.0) blue:(255/256.0) alpha:1.0];

如果您想在cellForRowAtIndexPath下使用此更改单个表或 tableView 设计的视图

UIImage *background = [self cellBackgroundForRowAtIndexPath:indexPath];

    UIImageView *cellBackgroundView = [[UIImageView alloc] initWithImage:background];
    cellBackgroundView.image = background;
    cell.backgroundView = cellBackgroundView;

并创建一个 UIImage 单元格背景:

- (UIImage *)cellBackgroundForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSInteger rowCount = [self tableView:[self tableView] numberOfRowsInSection:0];
    NSInteger rowIndex = indexPath.row;
    UIImage *background = nil;

    if (rowIndex == 0) {
        background = [UIImage imageNamed:@"TopOfCell.png"];
    } else if (rowIndex == rowCount - 1) {
        background = [UIImage imageNamed:@"MiddleCell.png"];
    } else {
        background = [UIImage imageNamed:@"BottomCell.png"];
    }

    return background;
}

在这种情况下,如果您在所有 3 个级别中放置相同的 IMG,您可以看到单元格的唯一 BG,并且您不需要在前景中使用 UIImage 为 TableView 着色,您可以直接在单元格上进行设计,例如:

TopOfCell.png 是第一个单元格,您可以放置​​一个 IMG 高度 10px 宽度 300px 角半径为 5,在中间您可以使用一个 img 宽度 300px 高度 1136px 与一些图形,并在底部镜像第一个,你可以看到你的表与图形务实。

我希望这对你有帮助

于 2013-06-28T15:03:18.460 回答
0

为了实现你想要的,你必须通过你的图像视图“传递”触摸。一种方法是子类化UIImageView并实现- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{}的方法UIView。如果您返回NOFALSE从该方法返回,您的自定义UIImageView将通过所有触摸传递到它下面的子视图。祝你好运!

于 2013-06-28T12:06:14.550 回答
0

现在我关注你的问题。只需使用以下内容禁用对 imageView 的触摸,以允许其下方的滚动视图(tableView)接受触摸。

_imageView.userIneractionEnabled = NO; 
于 2013-06-28T11:12:26.597 回答
0

您可以像这样以编程方式添加图像。

[self.demoTableView insertSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"defaultThumbNail.png"]] atIndex:0];
于 2013-06-28T10:53:17.397 回答
0

只需将 UIImageView 作为控制器 viewDidLoad: 方法中的子视图添加到 UITableView 中。代码说明一切:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, 320, 460)];
    imageView.image = [UIImage imageNamed:@"image_name"];
    [self.tableview addSubview:imageView];
}

注意图像视图的框架,因为它可以插入到容器控制器中,在这种情况下,您必须调整大小。

于 2013-08-14T08:27:02.587 回答
-1

如果您在 xib 中执行此操作,则可以通过以下步骤完成...

  1. 将 UIImageView 拖放到您的 UIView
  2. 设置你想要设置的图像。
  3. 根据我们的需要将 UITableView 拖放到它上面调整它的框架。
  4. 选择 tableview 插座并将其背景颜色设置为清除颜色

就这样 ...

于 2013-06-28T11:05:47.803 回答