如何在不使用 imageview 的情况下直接在视图上将图像设置为背景?

Posted

技术标签:

【中文标题】如何在不使用 imageview 的情况下直接在视图上将图像设置为背景?【英文标题】:How to set an image as background directly on a view without using imageview? 【发布时间】:2017-07-20 12:51:47 【问题描述】:
 UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background.jpg"]];
    _mainView.backgroundColor = background;

当我运行此代码时,我将图像作为视图的背景,但喜欢几种模式。我想在不使用 ImageView 的情况下将图像设置为我的视图。 可以通过 stroyboard 做吗?

【问题讨论】:

你为什么要做这样的事情? UIImageView 是实现你想要的最简单、最直接的方法。 How to set background image of a view?的可能重复 【参考方案1】:

您可以使用 CaLayer 对象,将您的图像指定为视图层的内容。 其他项目可以像以前一样添加为视图的子视图。

class CustomViewController: UIViewController 

    override func viewDidLoad() 
        super.viewDidLoad()

        // assign image as content of view's layer
        view.layer.contents = UIImage(named: "yourImageName")!.cgImage
       
 

更多信息:

Apple's CALayer doc

CALayer tutorial

【讨论】:

【参考方案2】:

当我运行此代码时,我将图像作为视图的背景,但是 喜欢几种模式。

因为您创建了一个模式并将其设置为UIView。方法initWithPatternImage 使用指定的 Quartz 颜色参考初始化并返回一个颜色对象。

最好你可以使用UIImageView并将其添加到UIView

【讨论】:

以上是关于如何在不使用 imageview 的情况下直接在视图上将图像设置为背景?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不创建新位图的情况下拥有圆形、中心裁剪的 imageView?

Android:如何在不加载完整位图的情况下将流式图像即时渲染到 ImageView?

如何在不使用内部相机裁剪的情况下裁剪图像

Titanium:在不创建 ImageView 的情况下获取 png 高度

在不移动叠加视图的情况下裁剪和缩放图像,而是在 ImageView 中移动图像

如何在不使用请求的情况下直接从代码调用烧瓶端点