如何填写UIView的背景图片

Jac*_*rky 67 iphone background objective-c uiview

我有一个UIView和我这样设置背景图像:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"sfond-appz.png"]];
Run Code Online (Sandbox Code Playgroud)

我的问题是背景图像不在视图中居中,但它会重放一些时间来填充所有视图.有没有办法将图像置于uiview内部并将scretch设置为具有屏幕尺寸?

注意:我不能UIImageView用于背景因为我有scrollview.

mr.*_*poe 280

您需要事先处理图像,以制作居中和拉伸的图像.试试这个:

UIGraphicsBeginImageContext(self.view.frame.size);
[[UIImage imageNamed:@"image.png"] drawInRect:self.view.bounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

self.view.backgroundColor = [UIColor colorWithPatternImage:image];
Run Code Online (Sandbox Code Playgroud)


Zai*_*han 57

对于Swift使用这个......

UIGraphicsBeginImageContext(self.view.frame.size)
UIImage(named: "ImageName.png")?.draw(in: self.view.bounds)

if let image = UIGraphicsGetImageFromCurrentImageContext(){
    UIGraphicsEndImageContext()
    self.view.backgroundColor = UIColor(patternImage: image)
}else{
    UIGraphicsEndImageContext()
    debugPrint("Image not available")
 }
Run Code Online (Sandbox Code Playgroud)


Mun*_*ndi 17

colorWithPattern:方法实际上是用于从图像生成模式.因此,您需要的定制很可能是不可能的,也不是可能的.

实际上,您需要使用a UIImageView来居中和缩放图像.你有一个事实UIScrollView并没有阻止这个:

self.view一个通用视图,然后同时添加UIImageViewUIScrollView为子视图.确保在Interface Builder中正确连接所有内容,并使滚动视图的背景颜色透明.

这是恕我直言,为未来的变化提供最简单,最灵活的设计.


Raj*_*shu 16

重复:

UIImage *img = [UIImage imageNamed:@"bg.png"];
view.backgroundColor = [UIColor colorWithPatternImage:img];
Run Code Online (Sandbox Code Playgroud)

拉伸

UIImage *img = [UIImage imageNamed:@"bg.png"];
view.layer.contents = img.CGImage;
Run Code Online (Sandbox Code Playgroud)