버튼의 이미지를 줄이기 어려울 때
- 디자이너에게 적절한 해상도의 이미지로 버튼을 받는다.
- 이미지 뷰 안에 들어간 이미지는 자체적으로 사이즈 조절이 가능
이미지뷰 + 레이블 위에 투명한 버튼을 올리는 방법으로 가능하다
- 버튼의 style을 default로 바꾸면 이미지 사이즈를 변경할 수 있다.
대신 버튼에 포함된 text를 아래로 내릴 수 없다.
버튼 자체를 클릭하는 것과, 투명한 버튼의 차이
파일 생성 시 유의사항
- 폴더와 target을 체크해준다.
- target을 해제할 경우, 해당 프로젝트에 파일이 들어있어도 누구껀지 모르는 상황이 발생할 수 있다.
CGFloat, CGColor
CG는 Core Graphic의 약자이다.
CGFloat의 경우, 실수값이 들어가며
CGColor의 경우, UIColor와 자료형이 다름에 유의한다.
코드 간결하게
- 사진과 같이 타입을 정확하게 알고있는 경우 타입을 생략하고 .blue 이렇게 사용할 수 있다.
버튼의 상태 값
.noraml
- 일반적인 상태
.highlighted
- 버튼을 누르고 손을 떼지 않은 상태
- 인터렉션이 좋은 앱은 highlight를 잘 활용한다.
var VS let
random변수에는 실행시마다, 새로운 값이 들어간다.let을 써도 괜찮은 이유가 무엇일까?
- 실행되는 동안 random 변수의 값은 변하지 않기 때문에 let을 사용한 것이다.
@IBAction
- 클릭이 되는 요소(UIButton, UITextField...)는 connection에서 action으로 연결이 가능하다.
- type은 안전성을 위해, Any 대신 자신의 type을 사용하는 것을 권장한다.
- Button의 경우 event는 99% touch up inside가 사용된다.
Xcode 팁
- option을 누르고, 특정 값을 클릭하면 도움말이 표시된다
- 특정 값이, 옵셔널인지 아닌 지를 확인 할 때 등 유용하게 사용할 수 있다.
애플에서 제공하는 함수 VS 사용자 정의 함수
애플에서 제공하는 함수
- 이름, 기능, 실행타이밍이 이미 정해져 있다 (=유저가 정할 필요 없다)
- ex) viewDidLoad()
사용자 정의 함수
- 이름, 기능, 실행타이밍을 사용자가 정의해줘야한다.
- 실행타이밍의 컨트롤을 위해 애플이 만들어 놓은 함수에서 사용자 정의함수를 호출한다.
Build Setting
- general에서 설정한 내용은 build setting에 반영된다.
- bold체이면 사용자가 설정을 바꾼 것이고, 아니면 디폴트값인 것이다.
키보드를 내리는 법
- 투명한 버튼으로 나머지 영역을 덮는 방법
- 제스처를 사용하는 방법
tap gesture recognizer
- @IBAction으로 유저의 tap gesture 시 수행할 기능을 작성할 수 있다.
- 추가하면 스토리보드 위에 아이콘이 생긴다.
Outlet Collection
- 비슷한 형태의 UI를 갖는 요소들을 모두, @IBOutlet을 연결하여 개별적으로 속성을 정의하는 것은 번거롭다.
- 이 경우, Outlet Collection을 사용할 수 있다.
- Outlet Collection으로 묶인 요소들은 리스트처럼 하나의 변수로 관리할 수 있다.
다음과 같이 배열을 순회하면서, 속성을 부여할 수 있다.
외부 매개변수 vs 내부 매개변수
외부 매개변수 (Argument Label)
- 전달인자를 설명해준다
- 외부(함수를 사용할 때) 사용
내부 매개변수 (Parameter Name)
- 파라미터(매개변수)의 실질적인 이름을 나타낸다.
- 함수 내부에서 사용
매개변수의 이름이 필요 없을 때
- 와일드카드 식별자( _ )를 사용하면 외부에서 함수를 사용할 때 매개변수 이름을 쓰지 않는다.
Alert
1. alert를 생성한다 (제목 + 내용)
2. alert버튼을 만든다 (확인, 취소)
3. alert에 버튼을 add
4. 띄운다(present)
이런 정보를 찾고 있었습니다, 감사합니다.