개발 삽질기
-
[iOS] present된 viewcontroller에서 status bar가 새까맣게 보일 때개발 삽질기/iOS 2020. 2. 17. 10:47
viewController가 present되었을 때, viewcontroller.view 의 backgroundColor가 nil이면 검은색이기 때문에, statusBar 위치까지도 검은 색이 된다. 이 상황에서 기본 statusBarStyle(UIStatusBarStyleDefault)을 사용하고 있다면 statusBar의 내용도 검게 나오니 아무것도 보이지 않게 된다; 이 때 해결 할 수 있는 방법이 두 가지가 있다. 1. 뷰가 하얀색일 경우, viewController.view의 backgroundColor를 [UIColor whiteColor](hex값 0xFFFFFF)로 지정해준다. 2. 뷰가 어둡거나 검어야 하는 경우, viewController의 - (UIStatusBarStyle)prefe..
-
[iOS]CALayer Shadow가 안 보일 때 확인해볼 것개발 삽질기/iOS 2020. 2. 12. 11:58
View Heierachy Debugger가 많은 정보를 보여주긴 하지만, CALayer의 마스크나 그림자는 영역이 잡히지 않는다. 덕분에 그림자 관련 디버깅을 할 때 꽤 애먹었다... (물론 디버거에 layer의 속성을 출력시켜보면 숫자로 보이긴 하지만... 눈으로는 보이지 않는다 =.=;) CALayer에 그림자를 적용했더니 아래 증상이 나타났다면 1. 뷰에 그림자가 안 생김 2. 뷰 자체가 아니라 내부 색깔있는 subView (UILabel 등...)에 그림자가 생기는 경우 그럴 떄는 1. 뷰의 backgrounColor가 clearColor인지 확인해 볼 것. 이 경우, 위 2번 증상이 생긴다. 2. backgroundColor가 설정된 다른 뷰에 뷰의 가장자리가 겹쳐지지 않았는지 확인해볼 것. ..
-
[iOS] 하드웨어 모델명 얻어오기개발 삽질기/iOS 2020. 2. 12. 10:28
UIDevice.model //시뮬레이터 x86_64, 아이폰 6 iPhone 7,2 UIDevice의 model을 사용하면 얻어올 수 있다. 단, 주의할 점은 하드웨어의 모델 이름이기 때문에, 우리가 아는 모델명과는 다르다. 우리가 아는 모델명은 따로 변환해주어야만 한다... 아래 링크에서 하드웨어 모델명과 실제 모델명 (우리가 아는 아이폰 8, 아이폰6 등)을 알 수 있다. https://everymac.com/ultimate-mac-lookup/?search_keywords=iPhone7,2 애플 레퍼런스 https://developer.apple.com/documentation/uikit/uidevice/1620044-model?language=objc
-
[iOS] Objective C에서 Simulator인지 실 기기인지 구별하기개발 삽질기/iOS 2020. 2. 10. 14:18
결론부터 말하면 usr/include의 TargetConditionals.h에 정의된 TARGET_OS_SIMULATOR 플래그를 사용하면 된다. #if TARGET_OS_SIMULATOR //시뮬레이터에서 동작하는 코드 #else //기기 동작 코드 #endif 주의 사항 이 코드는 런타임에서 동작하지 않는다. 컴파일 때 이미 여부가 결정되기 때문. (매크로....) 앱 빌드와 시뮬용 빌드는 애초에 다르게 빌드된다. (이 과정은 저도 더 공부해봐야....겠네요) 안타깝게도 아직 런타임에서 이 걸 체크하는 부분은 못 찾았다. 조금 더 조사해봐야겠다. https://forums.developer.apple.com/thread/13254 TARGET_IPHONE_SIMULATOR는 ? 맨 처음에 TARGE..
-
[UICollectionView] scrollToTop, scrollToBottom 간단 구현개발 삽질기/iOS 2020. 1. 30. 23:02
UICollectionView에서 scrollToTop과 scrollToBottom을 구현할 일이 있어, 간단하게 만들어 보았습니다. import UIKit extension UICollectionView { func scrollToTop() { self.setContentOffset(.zero, animated: true) } func scrollToBottom() { let offsetY = self.collectionViewLayout.collectionViewContentSize.height - self.bounds.size.height self.setContentOffset(CGPoint(x: 0, y: offsetY > 0 ? offsetY : 0 ), animated: true) } } 으아..
-
[UITextField] 비밀 번호 입력 받기개발 삽질기/iOS 2020. 1. 19. 12:05
UITextField에서 비밀 번호를 입력받는 상황은 흔합니다. 아래 두 가지 조건을 만족하는 비번을 만드는 것은 UITextField에서 지원해주는 속성으로 할 수 있습니다. 1. 입력되는 패스워드를 감출 것 2. 입력되는 패스워드는 영어 대문자, 소문자, 숫자, 특수문자 로 이루어질 것. 1. 입력되는 패스워드를 감출 것 아래 한 줄 만 추가해 주면 위와 같은 효과를 얻을 수 있습니다. textField.isSecureTextEntry = true 2. 입력되는 패스워드는 영어 대문자, 소문자, 숫자, 특수문자 로 이루어질 것. UITextField의 textContentType에 .Password를 세팅해, 키패드를 비밀번호에 사용되는 문자들 (영문 대소문자, 아스키 특수문자, 숫자들)로만 제한할 ..
-
[Haskell] MAC OS에 GHC (Haskell 컴파일러)설치하기개발 삽질기/그 외 2020. 1. 11. 15:56
안녕하세요, 레몬킴 입니다 🍋 드디어 MAC OS에서 GHC 를 설치하는 데 성공해서, 제 삽질기를 공유드려요! https://www.haskell.org/ghc/download_ghc_8_8_1.html에 들어가서 환경에 맞는 패키지를 받는다. xcode-select(명령어 라인 도구)가 설치되어 있지 않다면 따로 설치해준다. 없으면 c compiler가 없다며 configure를 실행하는 단계에서 튕겨져 나간다. 이 프로그램은 XCode의 설치 여부와 별개 이다. 따라서 XCode가 있더라도 따로 설치해줘야 한다. terminal을 열고, xcode-select --install을 입력한다. 설치 방법은 이 링크로 확인 했다. terminal로 다운로드 받은 패키지에 접근해, sudo ./config..
-
UITableHeaderFooterView backgroundColor 변경법개발 삽질기/iOS 2020. 1. 2. 21:52
오늘 UITableViewHeaderFooterView의 backgroundColor가 기본색인 회색에서 변경이 되지 않아서 애먹었다.. 결론은 UITableViewHeaderFooterView의 backgroundView를 아무것도 없는 빈 뷰라도 설정해주면 된다. backgroundView가 없을 시, 프레임워크에서 UITableViewHeaderFooterView의 생명주기 중 setFrame 즈음해서 _UITableViewHeaderFooterViewBackground 라는 또다른 뷰를 UITableViewHeaderFooterView와 UITableViewHeaderFooterView.contentView 사이에 집어넣는다. 문제는 이 뷰의 backgroundColor가 회색을 띠고 있고, UI..