UIView фоновый узор - PullRequest
       20

UIView фоновый узор

7 голосов
/ 24 апреля 2011

Могу ли я добиться того же, что и ниже:

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

, используя только IB?Без необходимости писать такую ​​кодовую строку?Похоже, что IB позволяет устанавливать только простой цвет, а не изображения в качестве фона.

Ответы [ 3 ]

6 голосов
/ 24 апреля 2011

Интерфейсный Разработчик не позволяет использовать фоновый шаблон.Однако вы можете просто наложить фон с соответствующим изображением в UIImageView.Это дало бы желаемый вид приложения, без необходимости использовать код, который вы разместили выше.

Однако я категорически не согласен с тем, что вы должны использовать только Interface Builder.Код намного чище в моих глазах и позволяет намного больше контролировать то, что вы создаете.

2 голосов
/ 24 апреля 2011

Этого нельзя сделать в IB, но вы получили правильный код. Несмотря на то, что прокомментировали другие, используйте IB в максимально возможной степени, чтобы вы могли сосредоточить свои усилия на реальной бизнес-логике своего приложения, настраивая только там, где IB не достигает. Удачи!

0 голосов
/ 29 июля 2016

Как уже говорили другие, вы не можете делать это исключительно в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...