일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- dispatchqueue
- 멋쟁이사자처럼
- 위젯킷
- composable architecture
- 컴퓨터그래픽스
- 스위프트
- Protocol
- 후기
- 문법
- Swift
- cs
- spritekit
- c++
- 1일1알골
- 웹
- 멋사
- 네트워크
- TCA
- 알고리즘
- 운영체제
- swift concurrency
- 백준
- widget
- widgetkit
- SwiftUI
- 영남대
- 대외활동
- uikit
- 리액트
- 스유
- Today
- Total
목록uikit (10)
맛동산이
Two button slider를 구한현 예제가 많지 않고, 거기에 이번에 회사 스팩중에 하나가 슬라이더 안에 밑에 격자가 들어가거나, 위에 점이 들어가거나 하는 커스텀이 많이 들어갔다.그래서 나처럼 구현할 사람이 있을것 같아서 블로그에 남겨본다.먼저 편의성을 위해서 snapkit과 then을 사용한 코드 임을 감안! 해주세요!슬라이더 예시 //// SliderView.swift// twoHandledSlider//// Created by 최진용 on 10/12/24.//import UIKitimport Thenimport SnapKitprotocol SliderViewDelegate: AnyObject { func sliderView(_ sender: SliderView, changedV..
대표적으로 Foundation 프레임워크 내에서 텍스트 대치 방법은( 텍스트에 스타일을 추가해주는 방법 )은 크게 NSAttributedString NSMutableAttributedString 또한 하위로 문단 스타일을 설정하는데 있어서 NSParagraphStyle NSMutableParagraphStyle 가 있다. NSAttributedString nsAttributedString은 기본 시스템의 스타일이 아닌, 텍스트 자체에 다양한 설정을 추가할수 있는 텍스트 클래스를 의미한다. NSAttributedString 사용하는 방법 1. Attribute 선언하기 텍스트에 어떠한 설정을 주고 싶은지 미리 선언을 한다. let paragraphStyle = NSMutableParagraphStyle()..
nsLineBreakMode는 텍스트가 줄바꿈할때 어떻게 잘리는지에 대한 속성값이다. UILabel에 직접적으로 줄수있으니 어떻게 되는지 한번 살펴보자 byWordWrapping 단어가 한줄에 다 들어가지않으면 단어 단위로 줄바꿈을 한다는 속성 안녀어어어엉이 긴 단어고, 다음줄에서 끊기지 않게 하기 위해서 해당 단어에서 줄바꿈을 하게 된다. 따로 값을 주지 않는 경우에 기본값. byCharWrapping charWrapping의 경우 문자하나하나로 해서 문자단위로 줄을 끊게 된다. byClipping ByWordWrapping과 동일하게 작동한다. byTruncatingHead 줄바꿈이 없는경우 문장이 폭을 넘어가게 되면 앞부분을 …으로 처리하고 뒤에 부분이 나오도록 하는 속성 byTruncatingTa..
UIApplication.shared 라는 코드가 뭔지 몰라서 찾아보니 싱글톤이라는 디자인 패턴이며, 이것에 대해서 뭔지 몰라서 찾아보게 되었다. 싱글톤 패턴이란?(what is Singleton design pattern) 싱글톤이란, 단 하나의 인스턴스만을 생성해서 사용하는 디자인 패턴을 의미한다. 당연히 이러한 디자인 패턴을 이용하는데에는 다 장점이 있겠죠? 싱글톤 디자인 패턴, 하나의 User Info 라는 전역 인스턴스가 존재한다. 싱글톤의 장점 메모리 측면 : 단한번의 인스턴스가 생성되기 때문에, 메모리 관리가 편하고, 모종의 이유로 메모리가 해제되지 않는 memory leak 부분에서도 자유롭다. 또한 객체 접근시간이 줄어든다. 정보 공유 측면 : 하나의 인스턴스가 전역적으로 사용되기 때문에..
세마포어(DispatchSemaphore) 임계영역에 대하여 임계영역(critical section)이란, 여러프로세스가 동작할때, 각 프로세스가 공유 데이터로 접근하는 프로그램 코드 블록을 의미하며, 이렇게 여러 프로세스가 동시다발적으로 임계영역(즉 공유 메모리) 에 접근하게되면, 데드락이 발생할수도 있는 위험한 값이 오염될수도 있는 영역을 의미한다. 뮤텍스와 세마포어 뮤텍스와 세마포어는 이러한 위의 임계영역에 대한 프로세스 접근 제어 정책을의미한다. 뮤텍스 : 뮤텍스는 공유영역에 단 하나의 프로세스만 접근이 가능하도록 하는 정책이다. 세마포어 : 세마포어는 공유영역에 접근할수 있는 프로세스의 수를 지정해주는 정책이다. Swift에서의 세마포어 스위프트에서느 dispatchSemaphore이라는 키워드..
역시나 킹갓 제드님이 다 정리해두셨다. iOS ) Concurrency Programming Guide - Concurrency and Application Design 스위프트 프로그래밍을 처음 접하다 보면, api 에서 어떠한 값들이 변화하고 그 값을 통해서 ui를 변경 해주는 경우 dispatch queue.main.async 라는 명령어를 통해서 ui를 변경해준 경험이 존재 할것이다. 없음말고, 무튼 나는 있다. 근데 이렇게 dispatchqueue.main.async가 뭔지 알기 위해서 이렇게 글을 쓴다. GCD( grand central dispatch )의 발단 우리컴퓨터에서 연산처리속도는 cpu의 성능에 따라 정해진다. 하지만 이러한 연산 속도를 올리기 위해서 cpu를 쉬지 않고 돌린다면,..
weak strong unowned는 메모리를 참조하는 방식에 대한 이야기다. 해당 이야기를 이해하기 이전에 ARC(autometic reference counting) 에 대해서 알아야한다. 컴파일과 런타임에 대해서 컴파일은 코드가 어셈블리 언어로 해석되는 것을 의미한다. 런타임으 해당 어셈블리 언어가 메모리에 올라가서 실제로 작동하는 것을 의미한다. ARC(autometic reference counting) arc는 이전에 objective-c에서 MRC라는 수동적으로 reference counting 을 해주었던것을 자동으로 해주는 프로그램이라고 생각하면 쉽다. 그렇다면 reference counting이 왜 필요하고 왜 어떻게 작동하는것인가에 대한 의문이 생긴다. 참조 횟수 계산 방식 (refe..
Notification Center 처음에 어플리케이션을 만들때, 콜렉션뷰에서 cell 내부의 버튼을 통해서 현재 cell의 이미지를 홈뷰 이미지뷰에 넣어주기 위해서 cell 내부에는 클로저를, item controller에는 delegate를 사용해서 homeView에 이벤트를 넘겨주었는데 작동하지 않았다. Notificatin Center 우선 Notification Center은 클래스이다. 그리고 이 Notification Center의 인스턴스는 enables the broadcast of information to registered observers,라는 역할을 하는데, 번역하자면 등록된 옵저버들에게 정보를 전달해주는 역할을 한다는 뜻이다. 노티피케이션 센터는 옵저버 패턴이다. 옵저버란, 스..
swift를 공부하다보면 try? 라는 구문을 상당히 많이 접하게 된다. 이것에 대해서 궁금증이 생겨서 찾아보게 되었다. do catch 먼저 스위프트에서는 에러처리를 do,try catch구문을 통해서 잡게 된다. do{ y = try something() } catch{} 이러한 방식으로 do 의 구문을 돌리고 에러가 발생하면 catch구문으로 넘어가게 된다. try? 이때 catch구문을 사용하지 않고, 리턴값을 에러가 발생할때 nil을 받기위한 간단한 구문이 바로 try?이다. 이때 리턴값은 optional 이기 때문에 언래핑을 해야 값을 확인할수 있게 된다. try! try!또한, catch구문을 사용하지 않고, do catch문대신 사용하는 예외처리 방법이다. 해당 try!는 nil값이 반환되..