2017-10-02 2 views
-3

先週Swiftで作業を開始しました。次のアプローチが別の画像の上に部分画像を配置する正しい方法である場合は、Swiftを使用してUIViewに部分的に画像を配置する3

私は3つの画像をプログラムで作成しているUIViewを持っています。左矢印画像、中移動画像、右矢印画像を表示する。モバイル画像に部分的に矢印画像を50%配置することはできますか?

私が試してみました:

func setupUI(){ 
    let mobileImage = UIImage(named: "mobile") 
    let arrowImage = UIImage(named: "arrow") 

    middleView = UIImageView(frame: CGRect(x: arrowImage!.size.width/2, y:0 , width:mobileImage!.size.width, height:mobileImage!.size.height)) 
    middleView.image = mobileImage 
    middleView.layer.borderWidth = 1.0 
    middleView.layer.cornerRadius = 5.0 
    self.addSubview(middleView) 

    let yForArrow = mobileImage!.size.height - arrowImage!.size.height 
    leftArrow = UIImageView(frame: CGRect(x: 0, y:yForArrow, width:arrowImage!.size.width, height:arrowImage!.size.height)) 
    leftArrow.image = arrowImage 
    self.addSubview(leftArrow) 

    let rightArrowX = mobileImage!.size.width 
    rightView = UIImageView(frame: CGRect(x: rightArrowX, y:yForArrow, width:arrowImage!.size.width, height:arrowImage!.size.height)) 
    rightView.image = arrowImage 
    self.addSubview(rightView) 
} 

を* iのinitメソッドでsetupUIを()を追加するのを忘れて開始時に、それは、働いていませんでした。答えは以下の通りです。

フレームを正しく設定しているか、制約を使用する必要がありますか?

私には、CGRectで数値をハードコーディングしているので、悪いアプローチに見えます。

enter image description here

*この画像は、それがiPhone上でどうあるべきかを示すためにMSペイントで作成されます。

+2

何が問題なのですか? – the4kman

+1

画像が切り取られてしまう問題がある場合は、画像のclipToBoundsをfalseに設定する必要があります。 – Eyzuky

+0

ここに完全なコードを投稿します。しかし、なぜ4ポイントが与えられたのでしょうか。コードに問題があり、それがなぜ機能していないのですか?この画像はMSペイントで作成され、iPhone上でどのように見えるかを示します。 – Rahul

答えて

0

initメソッドでsetupUI()を追加していないという問題が見つかりました。

SetupUIは、プログラムによってUIViewに画像を追加します。それが欠けていたので、iPhoneシミュレータに画像が表示されませんでした。

override init(frame: CGRect) { 
     super.init(frame: frame) 
     setupUI() // Code to add images in UIView 
    } 

しかし、私はそれが人々が質問に投票したことを非常に低下させることがわかります。

関連する問題