developer tip

표준 UIButton에 배지를 추가하려면 어떻게해야합니까?

optionbox 2020. 11. 2. 07:52
반응형

표준 UIButton에 배지를 추가하려면 어떻게해야합니까?


표준에 표준 모양의 배지를 추가 할 수 UIButton있습니까?

반영구적으로 지원되지 않는 경우이를 달성하는 가장 간단한 방법은 무엇입니까?

예시 이미지 :

iPhone UI 버튼


다음 은 Core Graphics를 사용하여 사용자 지정 배지를 만들고 렌더링하는 CustomBadge 라는 Sascha Paulus의 VERY NICE 클래스 입니다. 그것들은 UIView 서브 클래스 일 뿐이므로 다른 UIView 서브 클래스와 마찬가지로 프레임을 사용하여 레이아웃합니다.

이 라이브러리를 여러 번 사용해 왔으며 항상 결과에 만족했습니다. 유연하고 사용하기 쉽습니다. 완전히 추천합니다.


여기에서 몇 가지 옵션을 확인할 수 있습니다. CocoaControls 배지


Apple이 사용하는 클래스는 _UIBadgeView( https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/UIKit.framework/_UIBadgeView.h ), 물론이 클래스는 비공개입니다 (밑줄 참고 ) 및 문서화되지 않았습니다.

다음은 Apple과 동일한 모양과 느낌으로이 뷰를 구현하는 동시에 사용자 정의 할 수있는 또 다른 클래스입니다 : https://github.com/JaviSoto/JSBadgeView . 이 기능의 가장 큰 장점은 모서리 중 하나에서 자동으로 다른 뷰를 기준으로 배지를 배치 할 수 있다는 것입니다.


Nimbus에는 매우 사용하기 쉽고 잘 문서화 된 배지보기가 있습니다.

NimbusBadge


나는 이것이 어떻게 기본적으로 수행되는지 모르며 솔직히 Apple이 SDK에 그것을 내장했는지 의심합니다.

어쨌든 버튼이있는 사용자 지정보기를 만들고 배지의 배경을 UIImageView로 추가하고 배지 수를 유지하기 위해 레이블을 배치 할 수 있습니다.

빠른 솔루션입니다. 사용자 지정 하위 클래스를 만들고 UIButton배지 항목을 하위보기로 추가 하는 것이 더 나을 수 있습니다.


@ Björn Kaiser와 비슷한 방식으로 진행합니다. 원하는대로 버튼을 사용한 다음 해당 배지가있는 사용자 정의보기를 하위보기로 추가합니다. 이미 해봤으며 잘 작동합니다.

뷰는 원하는대로 그릴 수 있습니다. 수동으로 그리거나 CoreAnimation을 사용하여 주요 부분을 만들 수 있습니다. 즉 theBadge.layer.cornerRadius = ...;, 둥근 모양을 부여 drawRect:하거나 , 텍스트 / 숫자를 그리 거나, 레이블로 추가하는 등의 작업을 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/4722669/how-can-i-add-a-badge-to-a-standard-uibutton

반응형