2017-12-03 14 views
-1

동일한 이미지를 9 개까지 그리지 않아야합니다. CoreGraphics를 사용하여 원과 여러 호를 그리려면 이미 UiView를 하위 클래스로 만들었습니다. 이제 시계처럼 마커 객체를 그릴 필요가 있습니다. 나는 이미 Android Java에서이 작업을 한 적이 있지만 Swift에서 지금까지 시간을 보냈습니다. 나는 서로 다른 답변에서이 코드를 자갈길과 이미지를 그립니다하지만 투명성 유지 나던 :스위프트 3 투명도가있는 간단한 PNG 이미지를 그립니다.

let imageName = "single_marker_vertical_high_res.png"; 
let image = UIImage(named: imageName); 
let imageView = UIImageView(image: image!); 
imageView.frame = CGRect(x: 0, y: 0, width: 25, height: 75); 
imageView.draw(rect) 

을이이 클래스의 재정의 draw 함수 호출됩니다.
나는 스위프트에 관해서도 멍청한 놈이다. 나는 아직 코드를 보여주는 예제와 활용 방법을 찾지 못했다. 참고로, 이것이 내가 필요한 것입니다 :
As it looks on Android 상단 위젯의 눈금은 내가 투명도로 그릴 필요가 있습니다.

+0

일반적으로 이미지보기에 '그리기'를 호출하지 않습니다. 뷰 계층 구조에 추가하면 OS에서 렌더링합니다. (또한 모든 세미콜론이 필요하지는 않습니다.) 문제를 해결하려면 imageview의 isOpaque 속성을 확인하십시오. – Rob

+0

고마워요, 당신과 던컨 사이에 일하는 것 같아요. 그리고 나는 세미콜론이 필요 없다는 것을 알고 있지만이 시점에서 때때로 Swift, Java 및 JavaScript 사이를 전환하는 중입니다. 때로는 시간 단위로 이루어지며 프로그램을 해치지 않으므로 일관성있게 유지하기가 쉽습니다. – Notsileous

답변

0

절대로 drawRect를 직접 호출하면 안됩니다. 이미지 뷰를 원하는 위치에 놓고 이미지를 설치하면 시스템에서 그려줍니다. 이미지 뷰의 불투명 플래그를 false로 설정합니다.

프레임을 사용하여 배치하는 대신 AutoLayout 제약 조건을 사용하여 이미지 뷰를 배치해야합니다. 제약 조건을 추가하지 않으면 시스템이 이동합니다. NSLayoutAnchor을 살펴보십시오. 제약 조건을 생성하는 쉬운 방법입니다.

0

사용자 정의 & 재사용 가능한보기에 대한 코드를 작성할 수 있지만 xml을 명시 적으로 작성할 필요는 없지만보다 나은 방법은 비교적 쉽게 처리 할 수있는 제한 사항을 처리하는 것입니다. 스토리 보드에 원하는 오브젝트를 추가 한 후. 예를 들어 서클을 추가하려는 경우보기를 드래그하여 원하는 위치에 놓은 다음 높이의 절반 인 view.layer.cornerRadius =과 같은 속성으로 원을 만들면 isHidden, 불투명 한 속성을 통해 숨기거나 표시 할 수 있습니다. 물건들. 어떤 도움이 필요하면 그냥 물어보십시오.