Swift(21)
-
[Swift] 화면 캡쳐 감지 및 방지하기
회사에서 "iOS는 캡쳐 방지 어떻게 해요?" 라는 질문을 들었다. 애플에서 캡쳐 방지는 지원 안할거에여.. 찾아볼게여.. 화면 캡쳐 감지 다른 앱들은 어떻게 하고 있을까? 네이버는 캡쳐 시 저작권에 대한 경고 팝업을 다음카카오는 경고 팝업을 보여주며 내용 또한 보여주지 않는다. 라이브러리가 뭐 있나..? 하면서 오픈소스 저작권을 찾아봤지만 딱히 보이지 않았다. 흠 일단 경고 팝업부터 띄워보자. 일단 감지를 해야하니 NotificationCenter에 뭐가 있지 않을까? UIApplication.userDidTakeScreenshotNotification 애플에서 제공하는 함수이다. This notification posts after the screenshot is taken. 스크린샷이 찍히고 난 후..
2023.05.07 -
[Swift] Strideable Protocol
Strideable Protocol은 offset 및 측정 가능한 연속적 1차원 값을 나타내는 유형이다. Strideable 프로토콜을 준수한다면 stride(from:to:by:), stride(from:through:by:) 메서드를 사용할 수 있다. stride(from:to:by:) → from ~ to 미만의 범위를 by 간격으로 반복 수행한다 stride(from:through:by:) → from ~ through 이하의 범위를 by 간격으로 반복 수행한다 custom type에 Strideable을 채택하면 advanced(by:), distance(to:) 메서드를 추가해야한다. enum Week: Int { case monday = 0 case tuesday, wednesday, thu..
2022.10.17 -
[Swift] 뷰의 특정 모서리에 round 처리하기 + border
보통 뷰의 모서리를 다 둥글게 한다. 가끔 특정 모서리만 둥글게 하고 싶을 때도 있다. 근데 테두리도 넣어야한다? 구글링구글링.. 모서리를 그리는 방법에는 두가지가 있다. UIBezierPath와 CACornerMask 후자는 iOS 11이상부터 사용가능하다고 한다. BezierPath로 둥근 모서리 만들기 let path = UIBezierPath(roundedRect: rectCornerView.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 12, height: 12)) let mask = CAShapeLayer() mask.path = path.cgPath rectCornerView.layer.mask = m..
2022.03.10 -
[graphQL] custom scalar를 사용하기 위해 먼저 해야 할 것
gQL을 조금은 써봤다는 전제하에 쓰는 글이다. graphQL의 스키마 정의에서는 기본 유형의 타입만 지원한다. 여기서 기본 유형의 타입은 String, Int, Float, Boolean이다. 하지만 우리는 개발하면서 기본적인 타입만 사용하지 않는다. 이럴 때 사용 하는게 custom scalar이다. 만약 설정을 해주지않고 사용한다면 .graphql파일은 런타임에서 여러 유형을 반환하도록 설정된다. 나같은 경우는 String으로 나옴. Project - Target - Build Phases의 Apollo GraqhQL의 스크립트에서 passthroughCustomScalars 를 추가해주면 된다. "${SCRIPT_PATH}"/run-bundled-codegen.sh codegen:generate ..
2022.02.18 -
[Swift] UILabel에서 attributedText를 활용한 들여쓰기와 내어쓰기
안내사항 문구를 만들다가 글자 들여쓰기 어떻게 하지..? dot 라벨 만들고,, 라벨 만들어야하나...? 이런 생각을 했었다. 하지만 attributedText를 통해서 만들 수 있지않을까? 하고 구글링하고 정리 겸 블로그 글을 쓰게 되었다. (의식의 흐름) 인스펙터에서도 설정이 가능하지만 요상하게도 적용이 안되서 코드로 설정했다. 들여쓰기, 내어쓰기는 NSMutableParagraphStyle()를 통해 설정할 수 있다. zeroLabel.text = testString let firstParagraphStyle = NSMutableParagraphStyle() firstParagraphStyle.headIndent = 10 firstLabel.attributedText = NSAttributedStr..
2021.04.08 -
[git] .gitignore을 통해 git에서 특정 파일 제외하기
깃헙 repo에 작업 하다보면 .xcstat~나 .DS_Store 같은 개발 하며 생긴 임시 파일들을 커밋하라고 보여지는 경우가 있다.깃 이그노어를 추가해두면 그런 파일들을 커밋하기 전에 미리 걸러주는 역할을 한다. 아래 홈페이지에서 키워드를 입력하고 생성을 누르면 자동으로 관련 깃 이그노어를 생성해준다.나는 Swift, CocoaPods, macOS, Xcode 를 키워드로 사용했다.www.toptal.com/developers/gitignore gitignore.ioCreate useful .gitignore files for your projectwww.toptal.com 1. terminal에서 깃 이그노어 파일을 추가할 repo로 이동한다2. vim .gitignore을 입력한다3. i를 입..
2021.04.07