분류 전체보기
-
[Swift] 라이브러리 내부 이미지 관련 오류개발/Swift 2022. 8. 25. 16:32
라이브러리 이미지 관련 오류 두개의 어플리케이션에 중복적으로 사용되는 view 들이 많아 중복되는 view와 관련해 라이브러리를 만들어 두 어플리케이션에서 사용하기로 했다. 그렇게 라이브러리화 작업을 끝낸후 기존 프로젝트에서 이제 더이상 사용하지 않을 image 파일들을 모두 제거하자 image를 찾지 못하는 문제가 생겼다. 그렇다고 image를 다시 넣는것도 문제였다. 다시 넣는다면 App(현재 프로젝트)와 라이브러리에서 모두 image 파일을 가지고있기 떄문이다. 해결은 Bundle을 통해 가능했다. button.setImage(UIImage(named: "buttonImage"), for: .normal) 보통 이렇게 이미지를 사용한다. 이런경우 프로젝트 에서는 프로젝트 의 리소스를 보고 butto..
-
[Swift] 특정 코너만 CornerRadius 적용시키기개발/Swift 2022. 8. 22. 16:26
특정 코너만 CornerRadius 적용시키기 흔히 view에서 cornerRadius를 적용시키기 위해 이렇게 사용하고있었다 extension UIView { @IBInspectable var cornerRadius: CGFloat { get { return layer.cornerRadius } set { layer.cornerRadius = newValue layer.masksToBounds = newValue > 0 } } } self.view.cornerRadius = 8 위와같이 사용하면 각각 코너 모두 둥글게 Radius가 적용된다 하지만 만약 특정 코너만 ( 왼쪽위 or 왼쪽아래) 적용시키기 위해서는 다른 방법이 필요하다 extension UIView { func roundCorners(co..
-
[Swift] Superview 의 tap gesture 적용시 sub view에 영향 안주기개발/Swift 2022. 8. 19. 16:24
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Swift Modern Collection View & MVVM 패턴 가이드 | 덤벨로퍼 - 인프런덤벨로퍼 | MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., Swift iOS UI, 제대로 다루는 핵심 기술! 📲 iOS Swift 레이www.inflearn.com Superview 의 tap gesture sub view에 영향 안주기private func setDismissKeyboardEvent() { let gesture = UITapGestureRecognizer(target: self..
-
[Swift] Cell 에 init 을 하고싶을때개발/Swift 2022. 8. 16. 16:22
Cell init 에 관해 table cell 이던 collection view cell 이건 cell은 init 할때 parameter를 넣어서 init 할 수가없다. init(color:UIColor) { } 그래서 override init 함수를 써야하고 만약 cell 에 속성을 부여하고 싶다면 이런식으로 넣어준다 guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ACell", for: indexPath) as? ACell else { fatalError("ACell error")} cell.color = .red 하지만 reloadData() 가 일어나거나 하면 위의 함수는 한번 더 발생하게 된다. 만약 init()..
-
[Swift] ReloadData 호출시 키보드 사라지는 오류개발/Swift 2022. 8. 15. 15:17
ReloadData 호출시 키보드 사라지는 오류 Collection view 에서 데이터를 갱신할떄 reloadData()를 사용한다. textfiled 가 search 되는 시점에 reloadData() 를 호출했었는데 textfield가 editing 되는 시점에 reloadData()를 호출해야하는 요구 사항이 발생했다. 그래서 textEditing 되는 시점에 리스트를 필터링하여 reloadData를 호출했더니 키보드가 사라지는 현상이 발생했다 흔히 textField.resignFirstResponder() 함수가 실행되면 키보드가 사라지는데 해당 함수를 실행시키고 있지는 않았다. 그러므로 reloadData()가 호출되면 firstResponder가 자동으로 바뀌는것같았다. 구글링 이후에 가장 ..
-
몽골 고비+중앙 9박10일 투어 회고록후기 2022. 8. 8. 16:21
몽골에서의 9박10일 투어를 마치고 지금은 울란바토르에서 시내 구경을 하며 몽골에서의 마지막 날을 즐기고 있다. 총 14일 동안 여행을 했는데 사진이야 많이 찍었지만 내가 여행을 하면서 느꼈던 느낌과 감정을 남겨 놓는게 좋을거라 생각하여 글을 쓰기로 결정했다. 정보성 글이기 보다는 생생한 후기가 되지 않을까 싶다. 사막 투어 일정중 초반에는 사막지역에서의 일정이었다. 투어 포인트로는 차강소브라가, 욜링암, 홍고르엘스, 비양작이 있었다. 직접 사막에 갔을때 내가 느꼈던것은 생각보다 많이 힘들었다는것이다. 우선 굉장히 덥고 해가 강하며 건조하다. 에어컨이 없는 푸르공과 게르에서 계속 더위와 싸워야 하고 건조함때문에 립밤을 발라도 코속과 입술이 잘못하면 찢어질거같았다. 생각보다 벌레는 사막에서 많이 보지못했다..
-
[오브젝트 - 5 ] 상속과 상속의 문제점, 합성개발/프로그래밍 2022. 7. 18. 21:41
이미 존재하는 클래스와 유사한 클래스가 필요 하다면 코드를 복사하지 말고 상속을 이용해 재사용하면 된다. 상속과 결합도 코드를 쉽게 재사용할수 있는 상속은 좋은 방법일까? 자식 클래스 작성자는 부모클래스 구현 방법에 대한 정확한 지식을 가져야한다. 따라서 상속은 자식과 부모 클래스의 결합도를 높인다. 부모의 변경에 자식은 취약하다. 또한 불필요한 인터페이스를 상속 받게되는 문제가 생기게 되며 오버라이드 함수가 오작동할수있다. override func add(t: T) { addCount += 1 return super.add(t) } override func addAll(t: [T]) { addCount += t.count return super.addAll(t) } super.add() 내부에서 다른 ..
-
[TIL] 라이브러리 배포시 주의사항 (접근제한자, 리소스관리)개발/Swift 2022. 7. 8. 08:38
라이브러리 배포시 접근제한자 라이브러리 에서 작성한 함수를 외부에서 접근해야할때 public 제한자를 꼭 붙여야한다. default로는 internal이 되어서 외부 접근이 불가하다. 따라서 만약 외부에서 생성해야할 init 함수역시 모두 public 으로 작성 되어야한다. 라이브러리 리소스(이미지) 관리 이미지 같은경우 xcassets 파일을 Assets 폴더 안에 두면 된다. 이후 podspec 에서 경로를 이렇게 수정해주었다. s.resource_bundles = { 'LuxModuleKit' => ['LuxModuleKit/Assets/Resources/*.{xcassets}'] }