我有一个UIView
,我用这种方式设置了一个背景图片:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"sfond-appz.png"]];
我的问题是,背景图像并不在视图中居中,但它会多次重放以填充所有视图。有没有办法让图像在uiview和截图中居中以获得屏幕大小?
注意:我不能使用UIImageView
作为后台,因为我有一个scrollview
。
发布于 2011-11-10 10:10:21
你需要事先对图像进行处理,以生成居中和拉伸的图像。试试这个:
UIGraphicsBeginImageContext(self.view.frame.size);
[[UIImage imageNamed:@"image.png"] drawInRect:self.view.bounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
发布于 2014-10-11 06:57:45
对于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")
}
发布于 2011-11-10 10:11:33
colorWithPattern:
方法实际上是用于从图像生成模式的。因此,您需要的定制很可能是不可能的,也不应该是这样的。
实际上,您需要使用UIImageView
来居中和缩放图像。您拥有UIScrollView
这一事实并不能阻止这一点:
使self.view
成为一个通用视图,然后添加UIImageView
和UIScrollView
作为子视图。确保在Interface Builder中正确连接所有内容,并使滚动视图的背景颜色透明。
这是针对未来变化的最简单、最灵活的设计。
https://stackoverflow.com/questions/8077740
复制相似问题