【问题标题】:Setting image background without repeat [duplicate]设置图像背景而不重复[重复]
【发布时间】:2014-07-01 15:18:59
【问题描述】:

我已将我的背景设置为图片

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:[self.Images objectAtIndex:arc4random_uniform(4) ]]];

这立即奏效,实际上背景在两个图像之间发生了变化……直到我更改了包含图像的数组中的某些内容。然后突然间,图像在整个背景的平铺中重复出现。

什么会导致这样的事情?

【问题讨论】:

  • 这就是设计使用的方式。它旨在创建填充整个区域的图案,以便您可以将小瓷砖变成整体纹理。如果您正在寻找全屏背景,也许使用 imageView 作为背景视图是更好的选择。
  • 对方法中的“模式”有意义。两个疑惑:a)没有办法“关闭”重复/模式? b)我用不同的图像多次运行,它们是全屏的
  • 一个。不,我很确定如果你不想要这种模式,他们会假设你会使用 imageView。湾。这取决于图像的大小。如果图像的大小是屏幕的大小,它将填充该区域。这可以从一个图像到另一个图像,从一个屏幕到另一个屏幕。对于 3.5 英寸和 4 英寸,您必须使用不同的图像,而对于不可避免地更大的 iPhone 6,您必须使用三分之一。

标签: ios objective-c cocoa-touch


【解决方案1】:

colorWithPatternImage: 是这里的关键,您使用图像创建图案,而不是作为背景。正如洛根所解释的,您需要重新考虑如何设置背景。如果您想从随机图像设置背景,可以发布一个关于如何执行此操作的新问题

【讨论】:

    【解决方案2】:

    这里应该可以解决你的问题,你可以把它放在viewDidLoad

    UIImageView * bgImageView = [[UIImageView alloc]init];
    bgImageView.frame = self.view.bounds;
    bgImageView.contentMode = UIViewContentModeScaleAspectFit;
    bgImageView.image = [UIImage imageNamed:[self.Images objectAtIndex:arc4random_uniform(4)]];
    self.view = bgImageView;
    

    您可以稍后通过以下操作更改/访问它:

    UIImageView *bgImageView = (UIImageView *)self.view;
    bgImageView.image = [UIImage imageNamed:[self.Images objectAtIndex:arc4random_uniform(4)]];
    

    【讨论】:

    • 起初我只是看到很多我希望可以在几乎一行中完成的事情的代码。现在我想我理解了大部分背后的逻辑。当我模拟屏幕变黑并说“由于缺少入口点而无法访问场景并且没有运行时访问的标识符”。我会尝试四处搜索,但目前我对出了什么问题没有太多线索
    • 我不确定我理解你的意思吗?
    • 已经尝试使用上面的代码并在情节提要中添加了一个imageView并将其添加到头文件中。现在当我模拟代码时屏幕变黑了
    • 你不需要添加任何东西来使用它。
    • 当然!应该已经意识到,因为第一行创建了一个 imageView。虽然得到“输出文件的多个构建命令”,但还没有通过黑屏,但我有一些谷歌点击。所以也许我会自己解决这个问题
    【解决方案3】:

    我最终得到了以下解决方案:

    1) 在界面生成器中创建了一个 UIImageView 并将其拖出以填满整个屏幕

    2) 使用此命令设置 imageView 的内容:

    imageView.image = [UIImage imageNamed:@"Themes.png"];
    

    或者如果使用数组:

    imageView.image = [UIImage imageNamed:self.myArray[x]];
    

    其中“x”当然是数组中元素的编号-1(0索引)

    【讨论】:

      猜你喜欢
      • 2014-01-19
      • 2011-09-02
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2020-01-06
      • 2021-04-20
      • 1970-01-01
      • 2011-01-09
      相关资源
      最近更新 更多