2016-03-26 19 views
0

UIImageView ve UILabel içermesi gereken bir özel UIView oluşturuyorum. Bir UIViewController bu bakış bir örneğini oluşturmak herÖzel UIView hızlıca

import UIKit 

class AnswersCustomView: UIView { 
    var myImageView = UIImageView() 
    var myLabel = UILabel() 
    override init (frame : CGRect) { 
     super.init(frame : frame) 
     backgroundColor = UIColor.blueColor() 
     addLabel() 
     bringSubviewToFront(myLabel) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
    } 
    func addLabel(){ 
     let myViewFrame = self.frame 
     myLabel.frame = myViewFrame 
     myLabel.backgroundColor = UIColor.redColor() 
     myLabel.center=self.center 

     addSubview(myLabel) 
    } 


} 

. UIView eklenir, ancak UILabel görünmüyor. Bunun için herhangi bir sebep?

+0

daki görünüm hiyerarşisi görüntüler yeni bir araç daha ekledi basitleştirmek için. – James

+0

IBOutlet'inizi Xib dosyanızdan AnswersCustomView'unuza göndermelisiniz. – Khuong

+1

Etiketin görünümünün çerçevesinin bir karesi olmalı - görünümün çerçevesi değil – Hamish

cevap

1

Yorumda belirtildiği gibi, etiketin yanlış bir karesi olması bir sorun olabilir. Elma belgelerinde çerçeve belirtildiği gibi
olup:

Bu dikdörtgen, onun Superview koordinat sisteminde bakış boyutu ve konumu tanımlar. Görünümü değiştirmek ve konumlandırmak için bu dikdörtgeni düzen işlemleri sırasında kullanırsınız. Bu özelliğin ayarlanması , merkezi özellik tarafından belirtilen noktayı ve sınırlar dikdörtgenini buna göre değiştirir. Çerçeve dikdörtgeni koordinatları her zaman noktalarda belirtilir.

oluşturduğunuz etiket örneği AnswersCustomView değil AnswersCustomView Superview ait Subview, yani onun Superview sınırları olarak etiketin çerçevesini belirlesin.

Diğeri otomatiktir: siz onu kullanmıyorsunuz. AnswerView'ı nasıl yarattığınızı bilmiyorum, eğer başlangıç ​​karesi sıfırsa, etiketiniz sıfır kalacak, onu eklemeli ve kısıtlamalar koymalı ya da en azından otomatikleştirici maskeler kullanmalısınız.
Görüntüyü bir xib ile oluşturuyorsanız, bu durumda iniWithCoder çağrılır ve burada herhangi bir etiket yerleştirmezsiniz.

görüntüleme Apple ayıklama etiket boş 3d https://www.raywenderlich.com/98356/view-debugging-in-xcode-6