UIKit) Pull Down Button 과 Pop Up Button

2023. 7. 4. 04:13·앱/Swift

 

Pull Down Button

A pull-down button displays a menu of items or actions that directly relate to the button’s purpose.

풀다운 버튼을 사용하여 버튼의 동작과 직접 관련된 명령이나 항목을 표시한다. 메뉴를 사용하면 사용자가 인터페이스에 추가 버튼을 요구하지 않고도 버튼의 대상을 명확히 지정하거나 동작을 사용자 지정할 수 있다.

예시 )

  • 추가 버튼은 사용자가 추가하려는 항목을 지정할 수 있는 메뉴를 제공할 수 있습니다.
  • 정렬 버튼은 사람들이 정렬할 속성을 선택할 수 있도록 메뉴를 사용할 수 있습니다.
  • 뒤로 버튼을 사용하면 사람들이 이전 위치를 여는 대신 다시 방문할 특정 위치를 선택할 수 있습니다.

 

즉 풀다운 버튼은 어플리케이션이 어떠한, 특정 동작이나, 행위를 하는데 사용하는 버튼이다.

예를들어 “전체 선택하기”, “삭제하기” 등등이 있다.

 

Pop up Button

A pop-up button displays a menu of mutually exclusive options.

팝업 버튼은 단순한 목록을 보여줄때 혹은, 명령이 아닌 상호 배타적인 선택 목록을 제공해야 하는 경우 대신 팝업 버튼을 사용한다.

상호 배타적이란, 서로 옵션이 전혀 겹치지 않는 경우를 의미하며, 예를들어, 노래 정렬의 경우 ”최신추가순”, “많이들은순” 과 같은 완전히 상관없는 리스트를 의미한다.

 

팝업버튼의 사용방법 )

  • 기본선택을 제공할것
  • 해당 팝업이 어떠한 값을 가지고 있는지 암시적으로 이해할 수 있도록 도움을 줄것
  • 공간의 제약이 있으면서, 항상 모든 옵션을 표시할 필요가 없을 경우 사용하게 된다.→ 세그먼트 컨트롤의 경우에는 항상 모든 옵션을 보여주지만 그럴 필요 없을 때, 공간이 협소할 때 사용

 

Pull down과 Pop up 버튼 만들어 보기

놀랍게도 Pull down 버튼과 Pop up 버튼은, 그냥 일반적인 버튼에서 여러 옵션을 추가해서 만드는것이다.

그럴거면 왜 넣어둔거임 개쉑

사용해야하는것은 UIButton 에 iOS 14 부터 추가된 menu를 사용하면된다.

1. Menu생성하기

uiAction의 배열을 생성해 준다.

lazy var menuItems: [UIAction] = { 	return [ 		UIAction( title: "hi", image: UIImage(systemName: "chevron.down"), handler { _ in print("hellow") }, 		UIAction( title: "name", image: UIImage(systemName: "chevron.down"), handler { _ in print("hellow") }, 		UIAction( title: "hellow", image: UIImage(systemName: "chevron.down"), handler { _ in print("hellow") }, 	] } lazy var menu: UIMenu = {  		return UIMenu(title: "", options: [], children: menuItems) }

아니면 따로 UIAction 만들어서 배열로 추가해줘도 됨.

 

let ok = UIAction(title: "ok", image: UIIamge("암거나"), handler { _ in print("ok")} let cancle = UIAction(title: "cancle", image: UIImage("암거나"), handler { _ in print("cancle")}  var menu: UIMenu = { 		return UIMenu(title: "", children: [ok, cancle]) }

2. 버튼에 메뉴 추가하기

let menuButton = UIButton() menuButton.menu = menu //viewDidLoad에서 추가

 


추가요소

1. showsMenuAsPrimaryAction

showMenuAsPrimaryAction은 기본값이 false이지만, 이러한 경우에는 버튼을 길게 눌렀을때만 메뉴가 보인다.

하지만 해당 옵션을 true로 바꾸면 짧게 눌렀을 때도 메뉴가 나온다.

2. changesSelectionAsPrimaryAction

해당 옵션의 기본값은 true이다.

해당옵션이 true일때는, 짧게 눌러도 버튼이 토글된다. → 우리가 아는 눌렸을때 색이 변하고 하는것

해당옵션이 false일때는 길게 눌러야 버튼이 토글괸다.

즉 기본적으로 menu를 사용할때는 꾹 눌렀을때 버튼이 눌리고 매뉴가 나오는것을 원한다면

  • showMenuAsPrimaryAction = false && changesSelectionAsPrimaryAction = false

하면된다.

 

 

 


Uploaded by

N2T
반응형

'앱 > Swift' 카테고리의 다른 글

Swift) Escaping Closure  (0) 2023.07.04
UIKit) UISearchController 를 사용하여 TableView를 생성해보자  (0) 2023.07.04
Singleton에서 Protocol을 이용한 의존성 개선 방법  (0) 2023.07.04
Swift) 타입으로서의 Protocol 이를 이용한 Singleton 의존성 개선  (0) 2023.07.04
Swift개발 ) Thread 1 : Fatal error 처리  (0) 2023.07.04
'앱/Swift' 카테고리의 다른 글
  • Swift) Escaping Closure
  • UIKit) UISearchController 를 사용하여 TableView를 생성해보자
  • Singleton에서 Protocol을 이용한 의존성 개선 방법
  • Swift) 타입으로서의 Protocol 이를 이용한 Singleton 의존성 개선
진ddang
진ddang
안녕하세요 진땅의 개발자 블로그 입니다. 피드백은 환영입니다. 깃헙 : https://github.com/it794613
    반응형
  • 진ddang
    맛동산이
    진ddang
  • 전체
    오늘
    어제
    • 분류 전체보기 (199)
      • 일기 그리고 목표 (1)
      • 웹 (20)
        • 리액트 (19)
      • 앱 (115)
        • Swift 문법 (15)
        • Swift (65)
        • SwiftUI (32)
        • 리액트 네이티브 (3)
      • CS (30)
        • 컴퓨터그래픽스 (8)
        • 운영체제 (6)
        • 네트워크 (16)
      • 알고리즘 (13)
        • 백준 (12)
        • 프로그래머스 (1)
      • 대외활동 (7)
        • ict한이음(2022.04) (2)
        • 멋쟁이 사자처럼 (5)
        • Apple Developer Academy (0)
      • 다양한 내용들 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ReactorKit
    후기
    c++
    TCA
    swift concurrency
    영남대
    멋쟁이사자처럼
    문법
    dispatchqueue
    Protocol
    스위프트
    네트워크
    widget
    uikit
    스유
    widgetkit
    composable architecture
    운영체제
    위젯킷
    멋사
    spritekit
    SwiftUI
    백준
    cs
    웹
    대외활동
    알고리즘
    리액트
    Swift
    컴퓨터그래픽스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
진ddang
UIKit) Pull Down Button 과 Pop Up Button
상단으로

티스토리툴바