2017-09-21 38 views
1

我需要在swift中創建UIView programmaticaly,該視圖應該包含一個圖像和一個標籤。此外,我需要將該標籤和imageview嵌入到創建的視圖中,以便在爲視圖的約束創建動畫時,標籤和圖像也會將itseld相對於視圖重新定位。這是我的代碼合作遠 -如何在UIView中快速嵌入UILabel

func banner(viewController:UIViewController){ 
    let width = UIScreen.main.bounds.width 
    let dynamicView=UIView(frame: CGRect(x:0,y: -70, width:width, height:70)) 
    let label = UILabel(frame: CGRect(x:0,y: 35, width:width, height:20)) 
    dynamicView.backgroundColor=UIColor.green 
    label.center = CGPoint(x: width/2, y: 35) 
    label.textAlignment = .center 
    label.text = "I'am a test label" 
    UIView.animate(withDuration: 1) { 
    dynamicView.frame = dynamicView.frame.offsetBy(dx: 0, dy: 70) 
    viewController.view.addSubview(DynamicView) 
    viewController.view.addSubview(label) 
    } 

    UIView.animate(withDuration: 1, delay: 3, usingSpringWithDamping: 1, initialSpringVelocity: 4, options: .curveEaseIn, animations: { 
    dynamicView.frame = DynamicView.frame.offsetBy(dx: 0, dy: -70) 
    }, completion: nil) 
} 
} 

我可以通過改變x和每個觀點y位置,標籤分別等實現這一目標。但是那個代碼不會乾淨利落。

+1

嘗試增加標籤的子視圖您喜歡 DynamicView.addSubview(標籤) –

+0

@Romit庫馬爾因爲你是新的動態視圖爲了迅速確定開始使用框架,但現在建議使用約束來以編程方式添加視圖。 –

+0

謝謝@AravindAR –

回答

1

從問題中可以看出,您將標籤作爲子視圖添加到viewController視圖。既然你希望將標籤嵌入到動態視圖嘗試添加標籤,以動態的觀點一樣

UIView.animate(withDuration: 1) { 
    dynamicView.frame = dynamicView.frame.offsetBy(dx: 0, dy: 70) 
    viewController.view.addSubview(DynamicView) 
    dynamicView.addSubview(label) 
    }