분류 전체보기
-
Responder Chain에서 나온 hitTest터치 이벤트에 반응한 View가 어떤것인지 알아보기 위해 필요한 것이 hitTestHitTest터치 이벤트가 발생한 포인트에 있는 view중 view hierarchy에서 가장 멀리 있는 하위 view즉 최상단의 view를 반환여기서 말하는 최상단의 View는 view hierarchy의 최상단 객체가 아니라사용자가 보았을 때 가장 상위의 View를 말함아래 사진에서 검은색 화살표 부분을 터치했을 때를 예시로 들면 ViewB를 말함hitTest가 필요한 이유hitTest를 사용하여 터치 이벤트를 받을 view를 정할 수 있다.ViewB의 hitTest를 사용하면 위 그림과 같이 ViewB를 터치했을 때 ViewB를 터치한 것이 아니라터치 이벤트가 발생한 ..
[iOS] HitTestResponder Chain에서 나온 hitTest터치 이벤트에 반응한 View가 어떤것인지 알아보기 위해 필요한 것이 hitTestHitTest터치 이벤트가 발생한 포인트에 있는 view중 view hierarchy에서 가장 멀리 있는 하위 view즉 최상단의 view를 반환여기서 말하는 최상단의 View는 view hierarchy의 최상단 객체가 아니라사용자가 보았을 때 가장 상위의 View를 말함아래 사진에서 검은색 화살표 부분을 터치했을 때를 예시로 들면 ViewB를 말함hitTest가 필요한 이유hitTest를 사용하여 터치 이벤트를 받을 view를 정할 수 있다.ViewB의 hitTest를 사용하면 위 그림과 같이 ViewB를 터치했을 때 ViewB를 터치한 것이 아니라터치 이벤트가 발생한 ..
2024.06.13 -
UIResponderAn abstract interface for responding to and handling events.이벤트의 응답 및 처리를 위한 추상 인터페이스 Responder objects(UIResponder의 인스턴스들)들은 UIKit 앱 이벤트 처리를 위한 backbone을 구성UIApplication, UIViewController, 및 모든 UIView(UIWindow포함)와 같은 많은 핵심객체들이 Responder이벤트가 발생하면 UIKit이 이 이벤트를 처리할 수 있도록 앱의 Responder objects에 전달 이벤트에는 여러종류가 있음touch events, motion events, remote-control events, press events 가 포함예를 들어 t..
[iOS] UIResponder, Responder Chain, First ResponderUIResponderAn abstract interface for responding to and handling events.이벤트의 응답 및 처리를 위한 추상 인터페이스 Responder objects(UIResponder의 인스턴스들)들은 UIKit 앱 이벤트 처리를 위한 backbone을 구성UIApplication, UIViewController, 및 모든 UIView(UIWindow포함)와 같은 많은 핵심객체들이 Responder이벤트가 발생하면 UIKit이 이 이벤트를 처리할 수 있도록 앱의 Responder objects에 전달 이벤트에는 여러종류가 있음touch events, motion events, remote-control events, press events 가 포함예를 들어 t..
2024.06.09 -
Libarary사용하는 주체가 기능을 요청하여 사용Framework사용하는 주체와 기능의 제어권이 역전테스트 불가능데모앱 가능독립적으로 빌드, 테스트가 가능한 세부모듈을 둘 수 없음Static Framework앱의 실행 파일 안에 복사앱 실행파일에 직접 복사되어 있으므로 런타임상 속도 빠름참조가 아닌 복사이므로 안정적dynamic에 비해 메모리 더 소모Framwork안에 이미지 파일과 같은 리소스 파일이 있어도 사용불가Dyanamic Framework런타임 상에서 Mach-O 파일과 참조관계Framework내에 이미지나 뷰같은 리소스 파일, Bundle을 Embed할 수 있음빌도속도 상승메모리 상 필요할 때 load시키므로 lazy함디버그시 필요한 dSYM파일을 프레임워크 개발자가 따로 제공해야함stat..
[iOS] 모듈화 Library, Framework, Package,Libarary사용하는 주체가 기능을 요청하여 사용Framework사용하는 주체와 기능의 제어권이 역전테스트 불가능데모앱 가능독립적으로 빌드, 테스트가 가능한 세부모듈을 둘 수 없음Static Framework앱의 실행 파일 안에 복사앱 실행파일에 직접 복사되어 있으므로 런타임상 속도 빠름참조가 아닌 복사이므로 안정적dynamic에 비해 메모리 더 소모Framwork안에 이미지 파일과 같은 리소스 파일이 있어도 사용불가Dyanamic Framework런타임 상에서 Mach-O 파일과 참조관계Framework내에 이미지나 뷰같은 리소스 파일, Bundle을 Embed할 수 있음빌도속도 상승메모리 상 필요할 때 load시키므로 lazy함디버그시 필요한 dSYM파일을 프레임워크 개발자가 따로 제공해야함stat..
2024.05.09 -
https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net import Foundation func solution() { let iterator = Int(readLine()!)! var result = 0 for _ in 1...iterator { let inputs = readLine()! var stack: [Character] = [] for char in inputs { if stack.isEmpty { stack.append(char) continue ..
[Swift] 3986번 : 좋은 단어https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net import Foundation func solution() { let iterator = Int(readLine()!)! var result = 0 for _ in 1...iterator { let inputs = readLine()! var stack: [Character] = [] for char in inputs { if stack.isEmpty { stack.append(char) continue ..
2024.03.18 -
https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net import Foundation func solution() { while let inputs = readLine(), inputs != "." { var stack: [Character] = [] for char in inputs { if !["[", "]", "(", ")"].contains(char) { continue } if char == "]" && stack.la..
[Swift] 4949번 : 균형잡힌 세상https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net import Foundation func solution() { while let inputs = readLine(), inputs != "." { var stack: [Character] = [] for char in inputs { if !["[", "]", "(", ")"].contains(char) { continue } if char == "]" && stack.la..
2024.03.18 -
https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net import Foundation let dx = [1, -1, 0, 0] let dy = [0, 0, 1, -1] var buildingMap: [[Character]] = [] var shangunQueue: [(Int, Int)] = [] var shangunBoard: [[Int]] = [] var fireQueue: [(Int, Int)] = [] var fireBoard: [[Int]] = [] fu..
[Swift] 5427번 : 불https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net import Foundation let dx = [1, -1, 0, 0] let dy = [0, 0, 1, -1] var buildingMap: [[Character]] = [] var shangunQueue: [(Int, Int)] = [] var shangunBoard: [[Int]] = [] var fireQueue: [(Int, Int)] = [] var fireBoard: [[Int]] = [] fu..
2024.03.18 -
https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net import Foundation var demessions = readLine()! .split(separator: " ") .compactMap { Int($0) } let X = demessions[1] let Y = demessions[0] let Z = demessions[2] print(BFS(X, Y, Z)) func BFS(_ X: Int, _ Y: Int, _..
[Swift] 7569번 : 토마토https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net import Foundation var demessions = readLine()! .split(separator: " ") .compactMap { Int($0) } let X = demessions[1] let Y = demessions[0] let Z = demessions[2] print(BFS(X, Y, Z)) func BFS(_ X: Int, _ Y: Int, _..
2024.03.18 -
https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net import Foundation let RED = "R" let GREEN = "G" let BLUE = "B" var boardRGB: [[String]] = [] var boardRB: [[String]] = [] final class BFS { private let dx = [1, -1, 0, 0] private let dy = [0, 0, 1, -1] private let board..
[Swift] 10026번 : 적록색약https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net import Foundation let RED = "R" let GREEN = "G" let BLUE = "B" var boardRGB: [[String]] = [] var boardRB: [[String]] = [] final class BFS { private let dx = [1, -1, 0, 0] private let dy = [0, 0, 1, -1] private let board..
2024.03.18