如何在swift中将背景图像设置为colorWithPatternImage

时间:2014-08-03 16:38:11

标签: uiview swift

我的问题是,是否有可能让UIView显示图像,如果有,我怎么做?我能找到的只是colorwithpatternImage,它不再适用于swift。

我现在尝试使用的代码是:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];  

提前感谢您的回答!

7 个答案:

答案 0 :(得分:116)

请参阅UIColor documentation

在Swift中,你必须调用一个便利初始化器。这是因为在Swift中,所有返回其类实例的Objective-C类方法都成为了方便的初始化器。

以下是它在Swift中的表现:

 self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png"))

+ (UIColor *)colorWithPatternImage:(UIImage *)image返回一个UIColor实例,因此它将成为Swift中的便利初始化程序。同样,UIImage imageNamed:变为init(patternImage image: UIImage!)

答案 1 :(得分:8)

我更喜欢这个:

class ViewController: NSViewController
{

 @IBOutlet var myView: NSView!
 @IBOutlet var cellView: NSTableCellView! //ViewController is the file owner of the xib file

 override func viewDidLoad()
 {
    super.viewDidLoad()
    NSBundle(forClass: ViewController.self).loadNibNamed("Cell", owner: self, topLevelObjects: nil)
    myview.addSubview(cellView)
    cellView.layer?.borderColor = Color.blackColor().CGColor
    cellView.layer?.borderWidth = 1
 }

 override func mouseDown(event: NSEvent)
 {
   let result = self.view.window?.makeFirstResponder(cellView.textField!)
    print(result) //prints true
 }

由于将图像设置为backgroundColor会使其模糊不清。

答案 2 :(得分:4)

编辑了@ User9527的回答。不知道为什么它被投了票..对我来说很棒。刚添加了我自己的自定义框架。

let frame = CGRectMake(10, 55, 45, 45)
let backgroundImage = UIImageView(frame: frame)
backgroundImage.image = UIImage(named: "bg_image")
self.view.insertSubview(backgroundImage, atIndex: 0)

答案 3 :(得分:1)

如果你正在尝试使用imageview的图层属性,你应该使用类似这样的东西

userProfilePic.layer.borderColor = UIColor(patternImage:UIImage(named: "yourimg.png")!).CGColor

答案 4 :(得分:1)

您必须为上述代码添加可选绑定才能生效。这是UIImage之后的感叹,如下所示。

view.backgroundColor = UIColor(patternImage: UIImage(named: "backgroundSection.png")!)

答案 5 :(得分:0)

这需要我付出相当大的努力,捕获并传递以供参考。请参阅下文,了解生成和使用swift的完整示例。

参考示例

演示应用

enter image description here

代码摘录

以下是演示中UIView的纹理,请参阅完整列表的代码 -

func genTexturedView(_ view:UIView) {
    ...
    image.image = UIImage(named:"purple_example");
    view.addSubview(image);

    print("ViewController.genTexturedView():    Textured View added");

    return;
}

答案 6 :(得分:0)

快速

self.view.backgroundColor = UIColor(patternImage:UIImage(named:“ YourImage.png”)!)