본문 바로가기

iOS/Deep dive!!!

(35)
[iOS] UITextField placeholder 색 변경하는 방법 안녕하세요. 이번 포스트는 텍스트 필드를 커스텀 중에 placeholder 색을 변경하는 방법을 소개하려고 합니다. "그룹 이름을 검색하세요." 이 부분이 텍스트 필드인데 오랜지로 깔 맞춤하면 좋을 것 같아서 UITextField의 속성을 찾아봤는데 String타입의 placeholder의 color 변경하는 속성은 없었습니다. 이럴 땐 attributedPlaceholder 속성을 사용하면 됩니다. 얘도 마찬가지로 텍스트필드에 text가 없을 때 attributed로 styled된 string이 텍스트 필드에 보여집니다. (= placeholder) 이를 사용하면 시스템에서 정의된 placeholder 색이 아닌 내가 원하는 방식으로 지정할 수 있습니다. (NSMutableAttributedString..
[iOS] PrepareForReuse() 의 중요성 | UICollectionView 안녕하세요. 오늘은 앱 개발 하다가 다시 한번 prepareForReuse()의 중요성을 깨닫고 개념과 제가 마주한 에러를 해결한 경험을 소개하려고 합니다. (23.07.23)재사용 큐 탐구 포스트 링크 1. prepareForReuse()란? 컬랙션 뷰를 사용할 때, 새로운 cell을 보여줄 때마다 특정 데이터를 바탕으로 cell 인스턴스를 만드는 것은 메모리 사용량이 많아집니다. guard let cell = collectionView.dequeueReusableCell( withReuseIdentifier: MyCell.id, for: indexPath) as? MyCell else { return .init() } 그러기에 컬랙션 뷰를 만들 때 재사용하고 싶은 cell을 등록하고 cellForRo..
[iOS] UITextField 비밀번호 입력시 문자 가리는 방법 | Strong Password 경고 안녕하세요. 앱을 개발중인데 SignUp page에서 텍스트필드에 암호를 입력할 때 가리는 방법에 대해서 작성하려고 하빈다. 그리고 마주한 Strong Password에 대한 제 해결 방법을 소개하려고 합니다. 제 xCode 버전은 14.3이고 iOS minimum target 13입니다. UIKit에서 키보드 입력은 보통 UITextField로 쉽게 받을 수 있는데요. (한글 영어 할 것 없이 쉽게 받아져서 좋은것 같아요.. readLine()은 한글 입력받으면 이상하게 받아지던데..) let textField = UITextField() textField.isSecureTextEntry = true textField.textContentType = .password UITextField로 비밀번호를 ..
[Swift] 네비게이션 바 커스텀으로부터 살아남기.. UIBarButtonItem 네비게이션 바에 다음과 같은 기능을 추가해야 했습니다. ( 선 제외 ) 앱 로고와 두개의 버튼을 추가해야하는데 버튼 사이에 spacing이 필요했습니다. 처음엔 UINavigationBar를 대체하는 커스텀 UIView 안에 UILabel과 UIButton 총 3개의 컴포넌트 포함하도록 만들어서 네비게이션 바의 subview에 추가 했었습니다. (상당히 쉽다는 생각이 들었습니다.) 새로운 뷰로 push하기 전에 네비게이션 바를 없애야 했습니다. 아무리 커스텀 UIView의 subview를 nil로 하던,, 네비게이션 바에 addSubview로 추가한 커스텀 컨테이너 네비바를 nil처리하던 계속해서 다른 뷰컨트롤러를 push할 때 이전 네비 바의 모양이 상속 되었습니다.. ( 쉽지 않네요 ) 뒤늦게 알게된..
[Swift] UI Compoenet에 Shadow 적용 방법 | shadowPath | 쉐도우가 적용되지 않았던 이유... 안녕하세요. 이번 포스트는 shadow 적용하는 방법과 shadowPath를 사용한 shadow rendering 최적화 방법, 그리고 쉐도우가 적용이 안됬던 제 경험을 글로 작성했습니다. 1. UIView에 shadow 적용하는 방법UIView에 쉐도우를 적용하는 방법은 기본적으로 layer 속성을 이용하면 됩니다. let view = UIView() ... view.layer.shadowColor = UIColor.black.cgColor view.layer.shadowOpacity = 0.5 view.layer.shadowOffset = CGSize(width: 2.0, height: 2.0) view.layer.shadowRadius = 4.0 1. layer에서 보여질 shadow color를 ..
[swift] UIImageView shadow 적용 안되는 이유.. | clipsTobounds 오늘은 udp socket 통신을 관련 공부를 c언어로 학습하고 swift로 적용하려던 중에 새롭게 알게된 내용이 있습니다. UIImageView에 쉐도우를 적용하려고 했었는데 적용이 안됬습니다.. 이때 제 이미지 뷰의 선언은 아래와 같습니다. let photoView: UIImageView = { let iv = UIImageView() iv.image = UIImage(named: "flower") iv.clipsToBounds = true iv.translatesAutoresizingMaskIntoConstraints = false iv.layer.cornerRadius = 7 iv.layer.shadowColor = UIColor.gray.cgColor iv.layer.shadowOpacity =..
[UIKit] Horizontal collectionView에서 커스텀 scroll indicator로 스크롤 위치 표시 탐구하기 안녕하세요. 오늘은 스크롤 바에 관련된 실험을 하다가 커스텀으로 스크롤 indicator를 구현하게 되었습니다. 스크롤 indicator는 사용자의 드래그 이후 숨길 수도 있습니다. 또한 크기도 지정할 수 있고 크기도 키우거나 줄일 수 있습니다. 1. Setup UICollectionVIew's scroll direction + layout layout을 통해 스크롤 방향과, cell의 설정을 해야 하는데 이전 블로그 위 제목 1. Setup UICollectionView's ... 파트와 동일한데 cell의 크기만 다릅니다. 2. Setup FruitsScrollView final class FruitsScrollView: UIView { // MARK: - Constraints private type..
[iOS/UIKit] UICollectionView horizontal scrollable + custom carousel effect + animations | No4. 컬랙션 뷰 탐구 안녕하세요. 컬랙션 뷰 horizontal 기본 연습을 하다 그냥하면 심심해서 커스텀 카로셀 효과 + 애니메이션까지 적용해봤는데 공부하면서 배운 개념을 정리하려고 합니다. 이렇게 안 하려고 했는데 하다보니,, 최종적으로 완성한 결과물입니다. 구현하면서 스크롤 방향 시점을 체크하는데 애를 좀 먹었지만 에러 없이 잘 됩니다:) 1. Setup UICollectionVIew's scroll direction + layout 이전 포스트에서 컬랙션 뷰의 개념을 간단하게 정리했지만 간단 요약하자면 컬랙션 뷰는 크게 3개의 object가 있습니다. Data source, delegate, layout입니다. 이 중 layout은 collectionView에 보여지는 모든 객체들의 화면의 위치를 담당합니다. cell..