我有一个UITableView
,我希望在UIImageView
上方的前景中放置一个UITableView
透明度。
问题是如果我在UIImageView
上方添加UITableView
我无法在UITableView
上滚动,因为它位于UIImageView
下。
有没有办法让UIImageView
高于UITableView
,仍然可以滚动UITableView
?
答案 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}}方法。如果您从该方法返回UIView
或NO
,则您的自定义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中这样做,那么可以通过以下步骤完成...
那就是......