UITableView的背景滚动,但不重复
我尝试使用下面的方法来设置一个UITableView
背景:UITableView的背景滚动,但不重复
[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"backgroundImage.png"]]];
这个伟大的工程制作背景滚动与表。不过,我的背景图像渐变为纯色,所以而不是的背景重复,我很喜欢它只是向上滚动,适合屏幕高度。然后我可以设置self.view
的backgroundColor
为纯色,它看起来很棒。
其他选项似乎是在底部的一个小图像,但这似乎很复杂,我不太明白如何使用CGContext
绘制背景和blit。
谁能告诉我如何做到这一点?
我不知道这是否会工作,但你应该尝试创建用于背景的可调整大小的UIImage:
如果你想像素的最后一行重复,你会调用
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
图像([UIImage imageNamed:@"backgroundImage.png"]
) 与edgeinsets上:UIEdgeInsetsMake(backgroundImage.size.height-1,0,0,0)
和resizingMode:UIImageResizingModeStretch
完整的呼叫看起来像
UIImage* backgroundImage = [UIImage imageNamed:@"backgroundImage.png"];
UIImage* newBackgroundImage = [backgroundImage resizableImageWithCapInsets:UIEdgeInsetsMake(backgroundImage.size.height-1,0,0,0) resizingMode:UIImageResizingModeStretch];
现在,你可以尝试使用这个形象为图案制作:
[self.tableView setBackgroundColor:[UIColor colorWithPatternImage:newBackgroundImage]];
感谢您的建议。我只是试过这个,但它似乎没有做任何不同的事情。我认为这个解决方案的问题是tableView在滚动时不会增加frame.size.height,因此它只是重复图像,而不是拉伸背景颜色。 –
这为我工作:
UIImageView* bgImageView = [[UIImageView alloc] initWithFrame:self.tableView.frame];
bgImageView.image = [UIImage imageNamed:@"bg"];
bgImageView.contentMode = UIViewContentModeTop;
[self.tableView addSubview:bgImageView];
[self.tableView sendSubviewToBack:bgImageView];
在我的情况下,它工作得很好。我没有用很多重复使用的单元测试它。但它应该工作:D
你可以发布它是什么现在的屏幕截图,以及你想要它是什么? – viral
@病毒 - 我添加了我想要的图像。 –