У меня есть пользовательский компонент, сделанный после this учебник. Этот компонент является многоразовым, и мне нужно его фон прозрачным, но не подвиды (у меня есть три UIImageView, в нескольких UIButton и этикеткиПользовательский компонентный фон прозрачный
Я попытался это:.
self.view.backgroundColor = UIColor.purpleColor().colorWithAlphaComponent(0)
Делая это, если Я устанавливаю альфа выше 0, фон становится фиолетовым, но если я устанавливаю альфа на 0, фон становится белым, а не прозрачным (изображение имеет фоновое изображение).
Может кто-нибудь мне помочь? .
EDIT:
Забыл сказать, что над представлением есть UIScrollView.
EDIT 2:
В ViewController для Main.storyboard:
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "fondo")!)
ДАЛЕЕ ОБЪЯСНЕНИЕ, по запросу:
Я создал пользовательский компонент, в своем собственном файле XIb, следуя Учебник, который я связал ранее.
Чтобы использовать его, я перетаскиваю объект View в main.storyboard и устанавливаю его класс в swift, который соответствует этому xib.
Итак, у меня есть ViewController для Main.storyboard и быстрый файл для xib, который соответствует моему настраиваемому компоненту. То есть два быстрых файла, один для Main.storyboard И один для пользовательского компонента .xib.
Я установил фоновое изображение в быстрый файл для Main.storyboard (ViewController.swift). Если я что-то сделаю, у меня есть свои пользовательские компоненты, но с белым фоном. Итак, я понял, "Мне нужно установить фон для пользовательского компонента (custoncomponcnt.swift) прозрачный"
КОД: Customview.swift
import UIKit
@IBDesignable class CustomView: UIView {
// Our custom view from the XIB file
var view: UIView!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var icono: UIImageView!
@IBAction func onClick(sender: UIButton) {
println("button")
}
@IBInspectable var image: UIImage? {
get {
return icono.image
}
set(image) {
icono.image = image
}
}
@IBInspectable var text: String? {
get {
return label.text
}
set (text){
label.text=text
}
}
func xibSetup() {
view = loadViewFromNib()
// use bounds not frame or it'll be offset
view.frame = bounds
// Make the view stretch with containing view
view.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
//self.view.backgroundColor = UIColor.purpleColor().colorWithAlphaComponent(0)
self.view.backgroundColor=UIColor.clearColor()
// Adding custom subview on top of our view (over any custom drawing > see note below)
addSubview(view)
}
func loadViewFromNib() -> UIView {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: "CustomView", bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
override init(frame: CGRect) {
// 1. setup any properties here
// 2. call super.init(frame:)
super.init(frame: frame)
// 3. Setup view from .xib file
xibSetup()
}
required init(coder aDecoder: NSCoder) {
// 1. setup any properties here
// 2. call super.init(coder:)
super.init(coder: aDecoder)
// 3. Setup view from .xib file
xibSetup()
}
}
ViewController.swift:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "fondo")!)
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
пожалуйста, добавьте код для фонового изображения. –
Не устанавливайте цвет фона после установки рисунка. См. Мой обновленный ответ. –
Если я этого не сделаю, фон пользовательского представления белый ... вот почему я спрашиваю. Я не устанавливал в начале, но, увидев, что фон был белым, предположил, что мне нужно установить прозрачность для пользовательского представления. – Fustigador