在UITableView的前景上添加图像并滚动启用

时间:2013-06-28 10:43:05

标签: ios objective-c uitableview uiimageview scroll

我有一个UITableView,我希望在UIImageView上方的前景中放置一个UITableView透明度。

问题是如果我在UIImageView上方添加UITableView我无法在UITableView上滚动,因为它位于UIImageView下。

有没有办法让UIImageView高于UITableView,仍然可以滚动UITableView

6 个答案:

答案 0 :(得分:0)

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

[self.demoTableView insertSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"defaultThumbNail.png"]] atIndex:0];

答案 1 :(得分:0)

现在我关注你的问题。只需使用以下命令禁用imageView上的触摸,以允许其下方的scrollView(tableView)接受触摸。

_imageView.userIneractionEnabled = NO; 

答案 2 :(得分:0)

为了达到你想要的效果,你必须在图像视图中“传递”触摸。一种方法是继承UIImageView并实现- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{}的{​​{1}}方法。如果您从该方法返回UIViewNO,则您的自定义FALSE会将所有触摸传递到其下方的子视图。祝你好运!

答案 3 :(得分:0)

此处为 UITable

的代码

如果您想在桌面视图下方放置背景图片,可以在 viewDidLoad viewWillDidAppear

中使用此代码
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 是第一个单元格,您可以将角度半径为5的IMG高度10px宽度300px放在中间,您可以使用img宽度300px高度1136px和一些图形,并且底部镜像了第一个,你可以用实际的方式看到你的表格。

我希望这能帮到你

答案 4 :(得分: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];
}

注意imageview的框架,因为它可以插入容器控制器,在这种情况下你必须调整尺寸。

答案 5 :(得分:-1)

如果你在xib中这样做,那么可以通过以下步骤完成...

  1. 将UIImageView拖放到您的UIView
  2. 设置您想要设置的图像。
  3. 拖放UITableView,根据需要调整其框架。
  4. 选择tableview出口并将其背景颜色设置为清除颜色
  5. 那就是......