[iOS] 맞춤형 UIButton 스타일의 Custom View를 만들어 보았습니다.

3878 단어 SwiftUIButtoniOS

코드


모티프


UIButton을 맞춤 제작하려고 할 때 어떻게 해야 하나요?
UIButton은 Interface Builder에서 아이 View를 배치할 수 없습니다.
  • UIButton의 매개 변수를 만지작거리며 주유
  • 모두 이미지로 변환
  • UIButton에 addSubview
  • 뷰에 동일한 크기의 투명 UIButton
  • 을 배치합니다.
  • UIGesture Recognizer 사용
  • 사용자정의 UIControl(UIButton의 상위 클래스)
  • 이번에는 여섯 개를 만들어 보았다.
    장점: InterfaceBuilder에서 Buton의 내용을 AutoLayout으로 조립할 수 있습니다.

    이동


    이런 느낌이에요.모두 UIControl의 하위 클래스입니다.

    Type
    외관
    componentLight
    서브뷰를 얇게 만들기
    componentDark
    레이블 이외의 영역을 어둡게 만들기
    baseDark
    전체를 어둡게 하다
    lighterTheWhole
    전체를 반투명하게 하다
    likeButtonPlane
    일반적인 UIButton 상태 레이블만 얇아짐
    likeButtonCustom
    일반 Custom UIButton 상태 Image가 어두워짐
    whiteTheWhole
    전체가 하얘지다
    사용자 지정 가능

    selected, disable, high light의 View를 설정할 수 있습니다.

    버튼과 비교합니다.비슷하다

    그림 단추도 간단합니다.
    각환의 경우 화이트와 다크는 그 모양을 따라간다(중요)

    유사한 라이브러리 없습니까?


    못 찾았어요.
    더 구체적인'상용 버튼'도 있다.

    사용법



    UIView에서 ButtonView를 지정하십시오.
    UIControl도 가능합니다.
    그럼 평소 그거 나올 거야.

    버튼을 사용하려면 유형을 설정해야 합니다.기본적으로 UIButton과 비슷합니다.
    inuButton.setup(type: .darkerTheWhole)
    
    다음과 같이 특정 State의 View를 설정합니다.별로 안 써요.
    inuButton.setView(view: pressedInuButton, forState: .highlighted)
    
    뷰의 층이 너무 깊거나 복잡한 뷰가 들어가면 예상하지 못했기 때문에 어떻게 될지 모른다.
    StackView라면 방법이 있을 것 같아서요.

    실장 내용


    UIControl과 UIButton의 격차를 메우는 것이 목표다.
    하지만 이번에는 타이틀, 이미지, 백그라운드 이미지가 필요 없다.
    그리고 디테일한 섀도우 스펙, 인스타그램 스펙이 다 들어가지 않았다(평소 사용하지 않았던 스펙을 완전히 무시한 상태)
    TODO 차트
  • 터치 시 디스플레이 변경
  • 디스플레이 모드를 만드는 규칙(UIButton에 존재하지 않는 모드도 있다)
  • 범위를 벗어났을 때 범위를 되돌릴 때 디스플레이를 변경
  • selected, high light 및 disable을 설정할 때의View
  • 사실 활동 연관성은 UIButton이 아니라 UIControl입니다.
    UIControl State는 당연히 UIControl의 규격입니다. set Image: for State 같은 것은 UIButton의 규격입니다.
    실제 인코딩에 관해서는 별다른 뜻이 없기 때문에 사랑을 끊는다.

    감상


    3UIButton addSubview
    4View에 동일한 크기의 투명 UIButton 배치
    이쪽에서도 비슷한 일을 할 수 있을 것 같지만 3은 인터페이스 바이일더가 판면 디자인을 할 수 없고, 4는 이벤트와 연결되지 않아 사용하기가 불편하다.
    실제로 반년 정도 사용했지만 손이 닿을 정도로 간지러운 느낌을 좋아해요.
    예전에는 "그 버튼의 규격은 iOS가 아니지~"라고 자주 말했는데, 지금은 말하지 않는다.
    아이콘을 어느 위치에 두든 어느 크기든 고민하지 않아요.
    버튼의 애니메이션도 간단합니다.
    남은 번거로운 일은 그늘밖에 없다

    좋은 웹페이지 즐겨찾기