2016-08-03 2 views
-2

경우에 따라 UILabel을 클릭 할 수 있어야합니다. stacklverflow에서 UIlabelClickable을 만들기 위해 많은 답변을 시도했지만 작동하지 않았습니다.스위프트 : UIButton on UILabel

그래서 UILabel에 UIButton을 배치하고 버튼을 투명하게 만들기로 결정했습니다.

그러나 단추가 레이블 위에 올바르게 배치되어 있지만 단추를 클릭해도 상호 작용하지 않습니다. 어떤 생각?

감사

편집 : 또한, 두 개의보기가, 거기는 뷰 1와 뷰 2 말한다. 내 응용 프로그램의 구조로 인해 UIButton 및 UILabel을 뷰 2에 배치 한 다음 뷰 2를 뷰 1에 배치했습니다. 그래서 :

view2.addSubview(button) 
view1.addSubview(view2) 
+0

UILabel을 완전히 제거하고 UIButton 만 사용하면 어떨까요? UIButton은 기본적으로 클릭 할 수있는 UILabel입니다. –

+0

이유는 UILabel에 대해 여러 함수가 실행되어 UIButton으로 변경할 수 없기 때문입니다. – hikki

+0

UIButton에서 대신 이러한 함수를 실행할 수없는 이유는 무엇입니까? –

답변

0

제로의 불투명도 뷰는 tappable 없습니다. 버튼에 매우 작은 불투명도를 부여하지만 0은 아닙니다. 눈에 보이지는 않겠지 만 이제는 탭핑 할 수 있습니다.

또는 제목이없고 배경색이 알파가 0에 가까우나 0이 아닌 일반 버튼을 사용하십시오. 다시 말하지만, 이것은 보이지 않을 것입니다, 그러나 그것은 tappable 될 것입니다.

0

UILabel을 클릭 할 필요가있는 경우 레이블을 제거하고 UIButton을 사용하여 레이블 이름으로 단추의 이름을 변경해야합니다. 이것은 라벨처럼 보이지만 클릭 할 수 있습니다.

희망이 도움이됩니다.

1

UILabel은 UIView 수퍼 클래스에서 해당 속성을 상속하므로 UILabel의 userInteractionEnabled를 true로 설정할 수 있어야합니다.

UILabel은 UIControl에서 처음부터했던 방식대로 상속하지 않으므로 언급하는 것을 잊어 버렸습니다. 라벨이있는 제스처 인식기를 사용해야합니다.

그렇다면 단순히 UILabel에 탭 제스처 인식기를 추가 할 수 있습니다.

+0

분명히, 내 버튼은 슈퍼 뷰에서 벗어 났고, 그것이 작동하지 않는 이유였습니다. 바보 같은 질문을하고 모든 도움을 주셔서 감사합니다. – hikki

0

실제로 UIButton에는 titleLabel이 있습니다. 따라서 클릭 할 때 UIButton을 사용하는 것이 좋습니다. UILabel.

0

먼저 전답을 드리겠습니다. 2 가지 가능성이 있습니다

1) UILabel이 UIButton 위에있을 수 있으므로 UILabel에서 UIButton을 가져 가야합니다.

2) 알파를 0.0f로 만드는 색상을 지우려면 UIButton 색상을 사용했을 수 있습니다. 이 버튼을 클릭 할 수 없습니다. 따라서 색상 설정을 변경해야합니다. 그리고 알파를 1.0으로 만드십시오.

가장 좋은 방법은 UIButton만을 사용하고 UIButton과 UILabel은 사용하지 않습니다. 또는 userInteractionEnabled 속성이있는 UILabel 만.

관련 문제