2013-09-24 4 views
5

UIView 주위에 반투명 테두리를 만들려고합니다. 아이디어는 그림을 보여 주지만 경계선은 그림의 가장자리를 덮지 만 아직 국경 뒤에있는 것을 볼 수 있습니다. 나는 국경이 서로 다른 국경 너비를 가지길 원한다. 맨 위에는 80pt의 국경이 있고 싶습니다. 바닥에는 60pt의 국경이 있고, 측면에는 10pt의 국경이 필요합니다. 나는 코드를 사용하는 것을 알고 :UIView 주위에 사용자 지정 테두리를 만드는 방법은 무엇입니까?

UIView.layer.borderColor = [UIColor blueColor].CGcolor; 
UIView.layer.borderWidth = 10; 

모든 UIView의 내부의 주위에 당신에게 폭 (10)의 균일 한 경계를 줄 것이다,하지만 내가 어떻게 UIView의 여러 측면에 대해 서로 다른 경계 폭을 설정합니까?

+1

QuartzCore 프로그래밍을 연구하여 뷰의 가장자리 주위에 경로를 그리고 경로의 각 라인에서 색상을 변경해야 할 수도 있습니다. 배우고 실험하기에 너무 오래 걸리지 않아야합니다. –

답변

0

다음은 간단한 해결책입니다. UIView에 레이블을 추가하고 레이블의 텍스트를 지우고 레이블 배경색을 테두리 색으로 설정합니다. 라벨의 원점 (x, y)을 뷰의 원점 (x, y)으로 설정합니다. 레이블의 폭을 UIView의 너비로 설정하려면 높이를 1 또는 2 (UIView 상단의 테두리 높이)로 설정하십시오. 그리고 그 트릭을해야합니다. 아니면 다른 UIBezierPath 클래스를 사용할 수 있습니다 ..

+5

왜 이것에 대해'UILabel'이 필요한가요? 왜 'UIView'를 사용하지 않습니까? – rmaddy

+0

UIView를 추가하여 작업을 마무리했습니다. –

1

내 지식으로는 UIView 또는 그 뒷면 레이어의 속성을 사용하여 원하는 것을 얻을 수 없습니다. 원하는 특정 테두리 (사용자 정의 그래픽)를 포함하는 다른 UIView를 사용하여 이미지 위에 오버레이해야 할 수 있습니다.

1

이렇게하려면 몇 가지 해결 방법이 있습니다. 1. 다른 모든 것의 맨 아래에 이미지보기를 추가하거나 색인을 0으로 만듭니다. 테두리가있는 이미지를 추가하십시오. 보더 가장자리를 남겨 두어 나머지 뷰를 추가하십시오. 이미지는 맨 위에있을 수 있지만 보더는 단색이어야하며 나머지 이미지는 투명해야합니다. 2.보기에보기를 추가하고 수퍼 뷰에 경계 효과를 추가하십시오. 당신의 전망 틀은 그 하숙인에 있어야합니다.

관련 문제