본문 바로가기
728x90
Swift codebase UI 그리기 CollectionView 내가 지금까지 그린 화면 왼쪽 넣고 싶은거 오른쪽에 배우 리스트 !! 콜렉션뷰!!이거 하느라 진짜 울고 싶었다 var actorListColletionView: UICollectionView = { let layout = UICollectionViewFlowLayout() layout.minimumLineSpacing = 10 layout.scrollDirection = .horizontal layout.sectionInset = .zero let cv = UICollectionView(frame: .zero, collectionViewLayout: layout) cv.backgroundColor = .black .. 2024. 4. 25.
[codebase UI 그리기] Button 누를시 다른 view 로 화면전환 하기 240422 로그인 버튼을 누르면 지정해 놓은 뷰로 이동해 보려한다 lazy var loginButton: UIButton = { var button = UIButton(type: .custom) button.setTitle("로그인", for: .normal) button.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .bold) button.backgroundColor = .clear button.layer.cornerRadius = 5 button.clipsToBounds = true button.layer.borderWidth = 1 // 버튼의 테두리 두께 설정 button.layer.borderColor = UIColor.white.cgC.. 2024. 4. 22.
스토리보드 없이 Custom Navigation Controller 연결하기 240422 1. Navigation Controller 생성 가장 처음 보이는 화면과 연결 하는 코드 let vc = ViewController() // 가장 처음 보이는 controller self.pushViewController(vc, animated: true) // 전체 화면으로 보이게 함 2. SceneDelegate에 RootView 등록 스토리보드 없는 codebase UI 셋팅은 ScenDelegate 파일에 아래 코드를 추가해 주었었다 guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(windowScene: windowScene) window?.rootViewController = Vi.. 2024. 4. 22.
[UITableView Row Height]과 [UITableViewCell Row Height] 차이점 실험 240403 이건 그냥 기록! 답이 있는건 아님 UITableView의 Row Height: UITableView의 row height는 테이블 뷰 전체의 각 행(row)의 높이를 결정합니다.이것은 UITableViewDelegate 프로토콜의 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 메서드를 사용하여 지정할 수 있습니다. 이 메서드는 각 indexPath에 해당하는 행의 높이를 반환합니다.또는 UITableView의 rowHeight 속성을 설정하여 모든 행의 높이를 동일하게 지정할 수도 있습니다. UITableViewCell의 Row Height: UITableViewCell의 row.. 2024. 4. 3.
Swift X-code foregroundcolor 랑 tint color 차이점 240402 foregroundColor: 이 속성은 텍스트 또는 그래픽 요소의 전경색을 지정합니다. 예를 들어, UILabel의 텍스트 색상이나 UIImageView의 이미지 색상을 변경할 때 사용됩니다. 이것은 주로 특정 요소의 색상을 조정할 때 사용됩니다. tintColor: 이 속성은 주로 컨트롤의 배경이나 컨텐츠의 전경 색상을 지정하는 데 사용됩니다. 예를 들어, UIButton이나 UITabBar, UINavigationBar와 같은 컨트롤의 배경 색상을 변경할 때 사용됩니다. 또한 이 속성은 컨트롤의 콘텐츠 중 특정 부분이나 이미지에 적용되는 전경 색상을 정의하는 데 사용될 수도 있습니다. 요약하면, "foregroundColor"는 개별 요소의 색상을 지정하는 데 사용되고, "tintCol.. 2024. 4. 2.
To Do List 만들기 (1) alret 창 띄우고 할 일 적기 240328 새로운 파일에 Task 구조체를 만들어 준다 나는 할 일 내용을 넣을 title을 String 으로 완료 여부을 Bool 값으로 넣어 줬다 화면은 이런식으로 짰다 추가하기 버튼을 누르면 Alert 창이 나오고 Alert 창 안에 할 일 내용을 적으려고 한다 이 포스팅은 여기까지 구현하는 방법을 적어볼까 한다 1. 스토리보드에 구현 한 것을 코드 파일에 연결해 준다 이건 할 줄 알거라 믿고,, 설명은 넘어간다 2. 할 일 목록이 담길 변수 생성 var list = [Task]() class 안에 viewDidLoad 위쪽에 작성하였음 3. alert 창에 나타나는 문자 설정하기 추가하기 버튼을 누르면 alret 창이 떠야하므로 addButton 안에 코드를 넣어준다 let alert = UIA.. 2024. 3. 28.
[Swift] Enumeration Types 열거형 240315 상수나 변수로 값을 선언하면 값을 사용할 때 오타 등의 문제로 사용하기에 좋지 않다 그럴 때 열거형을 사용하면 오류가 많이 줄어 든다 선언 해 놓은 case 들이 자동완성으로 떠서 선택하기만 하면 된다 꼭 온점. 을 입력해야한다! 변수를 선언하고 타입을 보면 열거형 Alignment 라고 뜨는걸 볼 수 있다 열거형 케이스는 독립적인 '값' 이어서 변수에 저장 할 수 있다. --> 사실 이거 이해 못함,, 열거형을 if문으로 처리 할 때 if textAlignment == .center { print("center") } else if textAlignment == .left { print("left") } else { print("right") } 열거형을 switch문으로 처리 할 때 sw.. 2024. 3. 15.
[Swift] Dictionary 240315 Dictionary 특징 키와 값을 하나의 요소로 저장한다 정렬되지 않는 컬렉션 키와 값의 타입이 모두 같아야함 정식문법 Dictionary 콤마사용! 단축문법 [k:v] 콜론사용 let dict1: Dictionary let dict2: [String: Int] 요소 만들기 var dict = ["A": "Apple", "B": "Banana"] 초기화(빈 딕셔너리 만들기) dict = [:] //빈배열을 저장하거나 dict = [String: String]() //생성자를 사용해도 됨 dict = Dictionary() //정식문법으로 작성한 코드 요소 갯수 확인과 비어있는지 확인 let words = ["A": "Apple", "B": "Banana", "C": "City"] words.. 2024. 3. 15.
[Swift] Functions ,Parameter, Argument Label 240314 함수 Funtion 장점 : 재사용성 함수를 호출한다 라고 말한다 print 함수 print("hello") //hello 가 파라미터 //전달할 파라미터가 없다면 print() 함수를 만드는것 : 함수를 선언한다 라고 말한다 func sayHello() { print("Hello") } //여기까지 작성한걸 실행 해보면 아무일도 안일어난다 //기능을 만들어 두기만 한 것. 함수바디에 있는걸 호출 하려면 함수를 호출해야한다 sayHello() Return Values 리턴타입, 리턴형(리턴하는 자료형) 이라고 불리기도 함 중요 ! ! 리턴타입을 선언했으면 반드시 같은 타입의 값을 리턴해야한다 //작성하는 형식 func add () -> Int { return 1 + 2 //함수 바디에 문장이.. 2024. 3. 15.
[Swift] Break, continue Statement 240314 Control Transfer Statements 제어 전달문. 조건문과 반복문에서 사용함 for index in 1...100 { print("start \(index)") if index 10 { print("br") break } print("end") } 어떻게 출력 될지 생각해보기! 더보기 break Statement 현재 진행중인 문장을 중단하고 다음 문장을 실행함 예제) 홀수 인지 확인하는 코드 let num = 1 switch num { case 1...10: print("begin block") if !num.isMultiple(of: 2) { //값이 홀수 인지 .. 2024. 3. 14.
[Swift] Loop Statements (Range Operators, for-in Loop) 240314 Range Operators 범위 연산자 강의 lowerBound 2024. 3. 14.
[Swift] Assignment Operators 할당 연산자 240314 let a = 12 //왼쪽 피연산자는 항상 ㅁ ㅔ모리 공간을 가지고 있어야한다 var b = 12 b = 34 //복합 할당 연산자 Addition Assignment Operator var c = 0 // 아래 두 줄은 똑같은 코드 c = c + 1 // 1 = 0 + 1 print(c) //1 c += 1 // 2 = 1 + 1 print(c) //2 c = 1 print(c) //1 2024. 3. 14.
[Swift] Ternary Conditional Operator 조건 연산자 240314 강의 let hour = 12 hour < 12 ? "오전" : "오후" //두번째와 세번째 피연산자는 타입이 같아야한다 - if hour < 12 { "오전" } else { "오후" } 위에 조건연산자와 아래 if 문은 똑같은 역할을 하고 있다 그렇다면 조건 연산자는 언제 사용하느냐? 가독성을 높혀서 작성 하고 싶을 떄 사용함 2024. 3. 14.
[Swift] Strings and Characters 249314 강의 //타입추론 type annotation let str = "1" print(type(of: str)) let ch: Character = "1" print(type(of: ch)) //let doubleCh: Character = "aa" //에러. 두개이상의 문자는 문자열. 문자로 저장할 수 없다 let emptyCh: Character = " " //문자 타입의 공백을 저장하고 싶으면 공백을 입력해야한다 //==================== //형식추론 Type Inference let num = 123 //타입을 명시적으로 선언하지 않으면 입력값으로 추론한다 //타입을 선언하지 않으면 반드시 값을 저장해야한다 // Type annotation 타입 선언 : 형태가 복잡해지면 .. 2024. 3. 14.
Swift Scope 코드의 범위 240313 이미 듣고 정리한 내용인데도 새롭다,,,, 강의 //전역 범위 Global Scope {} 이거 밖에 //지역 범위 Local Scope {} 이거 안에 //#1 == #2 동일한 스코프 let g1 = 123 //#2에서 g1 사용 못함 print(g2) //여기까지만 실행 하면 g2 을 인식 할 수 없다 //error: algorithm.playground:13:7: error: cannot find 'g2' in scope //print(local1) //에러 상위 스코프는 하위 스코프에 접근 할 수 없다 func doSomething() { // #3 == #5 동일한 스코프 //로컬 스코프에선 상위 스코프에 접근 할 수 있다 // print(g1) // print(g2) let g1.. 2024. 3. 13.
Swift Naming convention 240313 문법은 아니지만 ,, 강의 UpperCamelCase - Class 클래스 - Struct 구조체 - Enumeration 열거형 - Extension 확장형 - Protocol 프로토콜 lowerCamelCase - Variable 변수 - Constant 상수 - Function 함수 - property 속성 - Parameter 파라미터 2024. 3. 13.
Swift Variables and Constants 240313 강의 //var (var키워드로 선언) var name = "Swift" //"Swift" 문자의 값이 name 에 저장됨 //토큰을 구분 할 수만 있으면 얼마든지 공백을 넣어도 됨 근데 가독성 떨어짐 var thisYear = 2022 var vaild = false //같은 숫자의 공간이 만들어졌고 저장됨? //저장된 값 불러오기 name //저장된 값을 불러오는 코드: 표현식 print(name) //실제 프로젝트엣 값을 불러올 때 쓰는 코드 //Swift\n" print 가 값을 불러올 때 자동으로 줄바꿈을 해서\n 이 출력 됨 //변수에 새로운 값을 저장 할 땐 var 키워드를 쓰지 않는다 name = "Steve" //값이 누적 되는 것이 아니라 값이 바뀌는 것 //var name.. 2024. 3. 13.
Swift 숫자 맞추기 게임 1 240312 일단 과제 내용 대로 착실하게 파일을 나눠 봤다 github 에 올리기 까지 함 (아직 깃헙데스크 탑은 제대로 못쓰고 있지만,,) 하여간 이번 과제는 숫자 맞추기 인데 내가 쓴 코드는 단 한 줄도 없다 단 한줄도 못 썼지만 과제 내용을 보고 어떻게 구현할지 생각은 해봤다 레벨1 조건 [1] 1에서 9까지의 서로 다른 임의의 수 3개를 정하고 맞추는 게임입니다 [2] 정답은 랜덤으로 만듭니다.(1에서 9까지의 서로 다른 임의의 수 3자리) 처음에는 세자리의 수를 랜덤으로 돌리면 되지 않나 생각 함. let num = Int.random(in 111...999) 그러면 111...999 이렇게 범위를 정할 수 있는데 이건 조건에 걸렸다 1에서 9까지의 숫자일 것 위 방법은 내가 '세자리의 수' .. 2024. 3. 12.
프로그래머스 Swift 자리수 더하기 13.자리수 더하기 import Foundation func solution(_ n: Int) -> Int { var answer = 0 for i in String(n) { answer += Int(String(i))! } return answer }​ 2024. 3. 12.
제리짤 모음 프로그래머스 알고리즘 문제 풀어내서 뿌듯한 제리 개념 공부 한 제리 미정 코드 짜다 돌아버린 제리 Xcode, iOS 공부하는 제리 미정 미정 2024. 3. 11.
[Swift] Property observer 프로퍼티 관찰자(옵저버) 240311 일단 observer 가 뭔지 검색해 봤다 observer : 관찰자, 감시자 고로 Property observer 는 프로퍼티 관찰자 라고 할 수 있겠다 Property 가 뭐냐고 묻는다면 간략하게는 클래스, 구조체에서 선언하는 상수/변수 를 프로퍼티 라고 한다 프로퍼티에 대한 자세한 내용은 Swift git book 자료를 첨부 한다 프로퍼티 관찰자 (Property observers)는 프로퍼티의 값이 변경되는지 관찰하고 응답한다. 프로퍼티에 관찰자를 정의하는 방법은 willSet 과 didSet 이 있는데 willSet 은 값이 저장되기 직전에 호출됩니다. didSet 은 새로운 값이 저장되자마자 호출됩니다 영어 그대로 해석 하면 된다 (1) willSet(새로운 값 생성'될' 예정인.. 2024. 3. 11.
프로그래머스 Swift 배열의 평균값 240308 10. 배열의 평균값 import Foundation func solution (_ numbers:[Int]) -> Double { var sum = 0 for i in 0.. 2024. 3. 11.
git, git hub 처음 시작 할 때 설정 방법 (feat. 터미널 명령어) 터미널 명령어 pwd(print working directory) : 현재 위치한 폴더를 알려준다 cd(change directory) + 폴더명 : 입력한 폴더로 이동 해 줌 팁 - 세개정도 치고 Tab을 누르면 자동 완성 된다. - 그리고 대소문자 주의 할 것! ls (list) : 폴더 안에 있는 파일과 폴더들을 보여준다 똑같쥬? ls -al (list all) : 숨겨진 파일까지 보여준다 mkdir + 폴더명 (make directory) : 폴더 생성! 내가 입력한 폴더가 새로 생겼다 새로 만든 파일을 아까 만든 폴더에 저장해 준다 clear : 터미널에 적었던걸 지워줌 새로 만든 폴더에 들어가서 뭐가 있는지 확인해 봤다 표면적으로 새로 만든 파일이 들어있다 괜히 cd -al 도 해봄 ㅋㅋ 아 .. 2024. 3. 7.
Swift 계산기 만들기 2탄 240307 거의 튜터님이 짠 코드나 다름 없지만 그래도 기록 해야지 Lv2 와 비교하여 어떠한 점이 개선 되었는지 생각해 보기라도 하자 class AddOperation { func add(_ number1: Double, _ number2: Double) -> Double { return number1 + number2 } } class SubstractOperation { func substract(_ number1: Double, _ number2: Double) -> Double { return number1 - number2 } } class MultiplyOperation { func multiply(_ number1: Double, _ number2: Double) -> Double { r.. 2024. 3. 7.
프로그래머스 Swift 짝수의 합 240307 9. 짝수의 합 정수 n 이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요. import Foundation func solution(_ n:Int) -> Int { var answer = 0 for i in stride(from: 2 , through: n, by: 2){ answer += i } return answer } 몰라서 그냥 찾아봤다 for 문을 써야겠는건 알겠는데 for문에 대해서 전혀 모른다 게다가 stride 는 또 뭐야 해서 찾아봄 stride ( from : x , to : y , by : z ) 전진할거야 x부터 y까지 만큼의 보폭으로 출처: https://zeddios.tistory.com/73 [ZeddiOS:.. 2024. 3. 7.
[Swift] Initializer 240307 생성자 Initializer 구조체 열거형 클래스 는 설계도 설계도로 만든 새로운 값을 Instance(객체) 새로운 Instance 를 만드는 과정을 Initialization (즉 초기화) 초기화의 목적 : 모든 속성을 적절한 값으로 초기화 해서 인스턴스를 기본상태로 만드는 일 class Position { var x = 0.0 //선언과 동시에 기본 값을 저장하는 방법. 동일한 방법으로 초기화 할 때 var y: Double // var z: Double? //옵셔널은 기본 값을 저장 하지 않으면 자동으로 nil로 초기화 한다 init() { y = 0.0 // 이렇게 하는게 귀찮아? 그래서 컴파일러가 디폴트 값을 호출해 줌 } } let p = Position() // 이렇게 이니셜라.. 2024. 3. 7.
Swift 계산기 만들기 1탄 클래스에 사칙연산 구연하기 class Calculator { var result: Double = 0.0 // 초기값 설정. // 더하기 func add(_ number1: Double, _ number2: Double) -> Double { result = number1 + number2 return result } // 빼기 func substract(_ number1: Double, _ number2: Double) -> Double { result = number1 - number2 return result } // 곱하기 func multiply(_ number1: Double, _ number2: Double) -> Double { result = number1 * number2 return .. 2024. 3. 6.
프로그래머스 Swift 각도기 문제 240306 8. 각도기 오답 1트 func solution(_ angle:Int) -> Int { if angle == 180 { return 4 } else if angle == 90 { return 2 } else if angle > 0 && angle 90 && angle Int { if angle > 0 { if angle < 90 { print ("0 2024. 3. 6.
프로그래머스 Swift 나이출력, 숫자 비교하기, 두 수의 합, 두 수의 나눗셈 240305 4. 나이출력 import Foundation func solution(_ age:Int) -> Int { return 2022 - age + 1 } 변수 선언을 해서 할 순 없나 5. 숫자 비교하기 import Foundation func solution(_ num1:Int, _ num2:Int) -> Int { if num1 == num2 { return 1 } else { return -1 } } 6. 두 수의 합 import Foundation func solution(_ num1:Int, _ num2:Int) -> Int { return num1 + num2 } 7. 두 수의 나눗셈 import Foundation func solution(_ num1:Int, _ num2:Int) .. 2024. 3. 5.
테이블뷰에 이미지와 라벨 넣기 그리고 오류,,,nable to dequeue a cell with identifier peopleCell 240229 희망과 절망을 넘나드는 오늘,, 희망편 헤헤 내가 만듦 메인페이지와 상세페이지는 안했지만,,, 핵심 코딩은 이건 인거 같아서 tableView 파일과 cell 파일을 왜 따로 생성하는지는 아직 잘 모르겠지만 일단 코드가 작동을 한다! (매우기쁨) 아래 두개의 블로그 참고함 (텍스트에 링크 다는것좀 알아와야겠따) https://jiwift.tistory.com/entry/iOSSwift-TableView-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%ED%85%8C%EC%9D%B4%EB%B8%94%EB%B7%B0%EC%97%90-%ED%91%9C%EC%8B%9C%ED%95%98%EA%B8%B0-TableV.. 2024. 2. 29.
728x90