如何将两个UIImages添加到UITableView Background

时间:2014-01-14 09:15:55

标签: ios iphone objective-c uitableview

我在iPhone屏幕的每一侧都有两个带花的图像。我想将这些图像添加到UITableView背景中。

截图

enter image description here

问题是:如何以编程方式添加或使用故事板? 我想在每个iPhone屏幕上使用这种花,是否可能?或者我应该在故事板中的每个ViewController上添加它吗?

我制作的代码

UIImageView *leftFlowersIView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 36, 455)];
    [leftFlowersIView setImage:[UIImage imageNamed:@"flower_left.png"]];
    [self.tableView.backgroundView addSubview:leftFlowersIView];
    UIImageView *rightFlowersIView = [[UIImageView alloc] initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width - 36, 0, 36, 455)];
    [rightFlowersIView setImage:[UIImage imageNamed:@"flower_right.png"]];
    [self.tableView.backgroundView addSubview:rightFlowersIView];

我收到了空白背景。

[self.view addSubview:leftFlowersIView];

它可以工作,但是当我向下滚动时 - 背景也是滚动的。

self.tableView.backgroundView = leftFlowersIView;

图像被拉伸以填满屏幕。

先谢谢,Artem。

结果是

    UIImageView *backgroundIView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
    UIImageView *leftFlowersIView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 36, 455)];
    [leftFlowersIView setImage:[UIImage imageNamed:@"flower_left.png"]];
    [backgroundIView addSubview:leftFlowersIView];
    UIImageView *rightFlowersIView = [[UIImageView alloc] initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width - 36, 0, 36, 455)];
    [rightFlowersIView setImage:[UIImage imageNamed:@"flower_right.png"]];
    [backgroundIView addSubview:rightFlowersIView];

    self.tableView.backgroundView = backgroundIView;

2 个答案:

答案 0 :(得分:2)

为此你可以制作一个框架等于桌面视图框架的单个图像,然后只需添加以下代码:

tableview.backgroundColor = [UIColor colorWithPatternImage:yourimage];

答案 1 :(得分:1)

解决此问题的正确方法是将-[UIColor clearColor]设置为属性-[UITableView backgroundColor],然后使用您的两张图片:

  1. 创建新的UIImageView,将其添加到UIView作为子视图(下面 UITableView
  2. 使用任何图形工具将两个角落图像添加到一个图像,但两个图像之间将有1px 白色像素(这样它将被重复)
  3. 使用新图片资源
  4. 创建UIImage的实例
  5. 使用UIImage创建可调整大小的-[UIImage resizableImageWithCapInsets:]。你应该指定UIEdgeInsetsMake(a,b,c,d),其中:
    • a:可伸缩图像的顶部填充(在您的情况下为0)
    • b:左侧可伸缩图像的填充(在您的情况下,它是花图像资产一侧的宽度)
    • c:可伸缩图像的底部填充(在您的情况下为0)
    • d:可伸缩图像的右边填充(在你的情况下,它是花图像资产一面的宽度)
  6. 将可调整大小的UIImage设置为-[UIImageView image]属性
  7. 有关-[UIImage resizableImageWithCapInsets]

    的参考资料