UIView背景图案

时间:2011-04-24 00:19:37

标签: iphone uiview background

我能否达到以下目标:

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

仅使用IB?无需编写这样的代码行? 似乎IB只允许设置纯色,而不是图像作为背景。

3 个答案:

答案 0 :(得分:6)

Interface Builder不允许使用背景图案。但是,您可以在UIImageView中使用适当的图像覆盖背景。这将为应用程序提供所需的外观,而无需使用您在上面发布的代码。

但是,我强烈反对您应该只使用Interface Builder。代码在我眼中更清晰,并且可以更好地控制你构建的内容。

答案 1 :(得分:2)

这不能在IB中完成,但是正确的代码。尽管其他人评论过,但尽可能使用IB,这样您就可以将精力集中在应用程序的真实业务逻辑上,只能在IB无法到达的地方进一步定制。祝你好运!

答案 2 :(得分:0)

正如其他人所说,你不能仅仅在IB /故事板中这样做。但是使用@IBDesignable,可以 在您的子类中添加几行并在IB中显示 ,这非常酷。

import UIKit

@IBDesignable
class MyView: UIView {
override func awakeFromNib() {
    super.awakeFromNib()
    self.addPattern()
}

override func prepareForInterfaceBuilder() {
    self.addPattern()
}

private func addPattern() {
    let image = UIImage(named: "MyPattern", in: Bundle(for: self.dynamicType), compatibleWith: nil)
    self.backgroundColor = UIColor(patternImage: image!)
}

}

然后只需将故事板/ IB视图的类更改为MyView。