2017-10-02 19 views
-3

지난주에 Swift에서 작업을 시작했는데 다음 방법이 다른 이미지 위에 부분 이미지를 배치하는 올바른 방법 인 경우 제안이 필요합니다.Swift를 사용하여 UIView에서 부분적으로 이미지를 배치하십시오. 3

프로그래밍 방식으로 3 개의 이미지를 생성하는 UIView가 있습니다. 아래 그림과 같이 왼쪽 화살표 이미지, 중간 모바일 이미지 및 오른쪽 화살표 이미지. 부분적으로 화살표 이미지를 모바일 이미지에 50 % 배치 할 수 있습니까?

이 나는 ​​시도했다 : 내가 init 메소드에 setupUI()를 추가하는 것을 잊었다로

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) 
} 

*에서, 그것은 작동하지 않는 시작합니다. 답은 아래와 같습니다.

설정 프레임이 올바르게 설정되어 있습니까? 아니면 제한 조건을 사용해야합니까?

나는 CGRect에서 숫자를 하드 코딩하기 때문에 나에게 나쁜 접근법을 보인다.

enter image description here

*이 이미지는 아이폰에 보일 것입니다 무엇을 보여주기 위해 페인트 MS에 생성됩니다.

+2

작동하지 않는 기능은 무엇입니까? – the4kman

+1

문제가 이미지가 잘리는 경우 이미지의 clipToBounds를 false로 설정해야합니다. – Eyzuky

+0

여기에 전체 코드를 게시합니다. 그러나 왜 4 점이 주어 졌는가? 나는 그것이 작동하지 않는 이유는 코드에 몇 가지 문제가 있습니다. 이 이미지는 MS 페인트에서 만들어 져서 iPhone에서 보여야하는 것을 보여줍니다. – Rahul

답변

0

init 메소드에서 setupUI()를 추가하지 못한 문제를 발견했습니다.

SetupUI는 프로그래밍 방식으로 UIView에 이미지를 추가합니다. 그것이 없어져서 아이폰 시뮬레이터에 이미지가 나타나지 않았습니다.

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

하지만 사람들이 투표에 대한 투표를 매우 어렵게하는 것을 발견했습니다.