본문 바로가기
반응형

SWIFT12

[Swift] frame과 bounds 들어가기에 앞서서 이런 뷰가 공통적으로 있다고 가정할께요?frame위는 공식문서에 있는 내용입니다.간단히 해석해보면해당뷰의 Superview의 좌표계에서 위치와 크기이다.이게 뭔말이냐 할 수 있는데요,내가 선택한(.frame으로 접근한) 뷰의 Superview(부모뷰)안에서의 위치와 크기를 나타낸다.고 이해하심 됩니다.그래서 좌표를 찍어보면 슈퍼뷰에서의 상대 위치로 위치가 찍힙니다.(아무튼 위치가 찍힌다는 말이죠)또한 뷰의 크기를 계산하는것도 특이한데요,크기를 정하는 영역은 항상 슈퍼뷰 안에서 직사각형 형태로 존재하기때문에 뷰가 돌아가도 공백을 다 포함한 너비를 구하려고 합니다. 한번 직접 볼까요?묘하게 점선도 돌아간것 같지만 실제론 안에있는 빨간색 사각형만 돌아가있다는... bounds위 내용도 공식 .. 2024. 10. 19.
[UIKit] 다크모드, 라이트 모드 고정 이번에는 다크모드나 라이트 모드에 고정하는 방법을 알아보고자 합니다. 우리가 앱을 만들다보면 앱의 테마를 위해다크모드나 라이트 모드로 고정해야 하는 상황이 생길수도 있습니다. 그쵸? 저만 그런거아니죠? 예시코드UIKit에서는 간단한 방법으로 고정 할 수 있는데요, 바로 SceneDelegate를 이용하면 됩니다.아래는 예시 코드입니다.window.overrideUserInterfaceStyle = .light // 다크모드는 .dark어때요, 간단하죠? 전체 예시이 한줄의 코드를 `scene(_:willConnectTo:options:)`안에 적어주면 됩니다.func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connec.. 2024. 9. 1.
[Swift] CocoaPods 제거하기 프로젝트가 뭔가 꼬인것같아 cocoapods까지 확실히 날려버리고 다시 시작해보려합니다. 그래서!이번 글에서는 cocoapods를 제거하는 방법을 알아보겠습니다. 1. terminal을 켭니다.2. 해당 프로젝트 경로로 갑니다. (참고로 해당 경로를 복사하는 방법은 cmd + option + c 입니다. 붙여넣기는 똑같이 cmd + v 입니다.)3. 아래 명령들을 순서대로 입력합니다.sudo gem install cocoapods-deintegrate cocoapods-cleanpod deintegratepod cache clean --allrm Podfile4. 해당 프로젝트 폴더안에 Podfile.lock과 프로젝트 이름.xcworkspace를 지웁니다.5. xcode로 프로젝트를 열어 pods 디렉.. 2023. 11. 10.
[스위프트] 반복문(for ~ in, while, repeat ~ while) 종류와 사용법 일반적으로 언어가 작성되고 실행되는 순서 및 방향들(흐름)을 제어하는 것을 흐름 제어 구문, 흐름 제어문, 제어 흐름 여러가지로 부르는데, 필자는 흐름 제어 구문으로 칭하겠다. 흐름 제어 구문의 종류에는 여러가지가 있는데 일반적으로는 다음의 세가지를 가장 많이 얘기한다. • 반복문(Loop Statements) • 조건문(Conditional Statements) • 제어 전달문(Control Transfer Statements) 이중 반복문에 대해 알아보자. 반복문(Loop Statements) for • 실행 횟수를 정확히 알때 • 특정 범위 안에서 반복해야 할때 위 두가지 경우에 for문을 사용한다. //기본적인 문법은 아래와 같다. for 루프 변수 in 순회 대상 { //실행될 내용 } //예시.. 2023. 7. 2.
[스위프트] 비트 연산자 종류와 사용법 비트 연산자는 글을 쓰다보니 길어져 따로 쓰는게 나을것 같았다. 비트 연산자 비트값을 바로 비교해 사용하기때문에 매우 빠르다는 장점이 있다. 그러나 좀 헷갈릴 수 있다. 주의해서 사용하도록 하자. 1. &(AND) 두 비트값을 비교해서 비트값을 둘다 1이면 1로 둘다 0이면 0으로 만든다. var first: UInt8 = 0b11110000 var second: UInt8 = 0b01110000 var result = String(first & second, radix: 2)//01110000 /* * 11110000 * 01110000 * ----------- * 01110000 */ 2. |(OR) 두 비트중 하나라도 1이면 1로 만든다. var one: UInt8 = 0b10110000 var t.. 2023. 7. 2.
[스위프트] 연산자 종류와 사용법 산술 연산자 사칙연산에 쓰이는 연산자 연산자 사용 예 의미 + a + b 더하기 - a - b, -a 빼기 or 부호변환 * a * b 곱하기 / a / b 나눈 몫 % a % b 나눈 나머지 비교 연산자 값을 비교할 때 쓰는 연산자. 주로 조건식에서 쓰인다. 연산자 사용 예 의미 a > b a보다 b가 크면 true, 아니면 false = b a보다 b가 같거나 크면 true, 아니면 false == a == b a와 b가 같으면 true, 아니면 false != a != b a와 b가 다르면 true, 아니면 false 논리 연산자 논리적으로 참, 거짓을 가릴때 사용한다. 연산자 사용 예 의미 ! !a a가 true이면 false, false면 true && a && b a와 b 모두 true면 tr.. 2023. 7. 2.
[스위프트] String과 Character String String형은 문자열을 저장할 때 사용하는 자료형이다. 스위프트는 안정성을 위해 타입추론기가 열일하는데 그 때문에 문자나 문자열을 명시적으로 선언하지 않으면 한 글자만 써도 무조건 String으로 저장된다. var name = "김철수" var year: String = "1999-01-01" let name2 = "김영희" var oneString = "아" //이 경우도 역시 String이다. Character Character형, 일명 char형은 한개의 문자("a", "아", "*")를 저장할때 사용한다. 앞서 말했듯이 명시적으로 char형으로 선언하지 않으면 자동으로 String으로 바꾸기 때문에 char형을 쓰려면 반드시 명시적으로 선언해야 한다! var first: Charac.. 2023. 7. 1.
[스위프트] Bool Bool 참(true), 거짓(false)을 저장하는 자료형이다. 주로 조건문의 조건식에 많이 쓰인다. 기본적인 선언은 이렇다. var good = true let bad = false 반복문이나 if문에서 쓰려면 아래처럼 쓴다. //if문에서 쓸 때 var good = true if good { print("good is true") } else { print("good is false") } //이때는 good이 true를 갖기 때문에 good is true 출력. //혹은 아래처럼 쓸 수 있다. var temp = 1 > 2 if temp { print("true") } else { print("false") } //이때는 false가 출력된다. //while문에서 쓸때 var temp = true.. 2023. 7. 1.
[스위프트] Float과 Double 둘다 실수를 저장하기 위한 자료형이지만 차이점이 있다면 범위가 다르다. Float 32비트 부동소수점 자료형이다. 서브 자료형으로 Float32와 Float64가 있는데 재밌는점은 이둘은 그냥 타입 알리어스로 만든 자료형이라 실제로 각각 Float과 Double을 의미한다. Float형 변수 및 상수 선언 var aaa: Float = 1.1111 var bbb: Float bbb = 2.2222 let aaa: Float = 1.1111 Double 64비트 부동소수점 자료형이다. 비트수가 커진만큼 당연히 저장공간도 더 많이 차지하고 소수점을 더 많이 표현할 수 있는데 이는 곧 더 정확한 수를 표현할 수있다는 뜻이기도 하다. Double형 변수 및 상수 선언 var aaa: Double = 1.1111.. 2023. 6. 30.
반응형