[SeSAC] October 15, 2023

✔︎ 오늘의 정리

  • collectionView 중앙 정렬
  • 파일 앱을 이용해서 사진을 가져오는 법
  • pickerView 처음 띄웠을 때 첫 선택지 TextField에 띄워주기
  • ViewController 내부에 ViewController 추가하기

 


CollectionView Cell 중앙 정렬

    func setCollectionViewLayout() -> UICollectionViewFlowLayout {
        let layout = UICollectionViewFlowLayout()
        let space: CGFloat = 8
        
        let width = (UIScreen.main.bounds.width - (space * 4)) / 3
        layout.itemSize = CGSize(width: width, height: width + 10)
        layout.sectionInset = UIEdgeInsets(top: space, left: 8, bottom: space, right: space)
        
        layout.minimumLineSpacing = space
        layout.minimumInteritemSpacing = space
        layout.scrollDirection = .vertical
        return layout
    }
    
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {

        let space: CGFloat = 8
        let width = (UIScreen.main.bounds.width - (space * 4)) / 3
        let totalCellWidth = width * 2
        let totalSpacingWidth = space * (2 - 1)

        let leftInset = (UIScreen.main.bounds.width - CGFloat(totalCellWidth + totalSpacingWidth)) / 2
        let rightInset = leftInset

        return UIEdgeInsets(top: 0, left: leftInset, bottom: 0, right: rightInset)
    }

잡는 레이아웃과 셀 갯수에 따라서 조금씩 달라진당.

나는 일단 일케 잡고 일케 맹글었음!!

 

ㅜㅜ 일케 하면 조금 더 괜찮지 않을까? 하고 맹글었는데

막상 만드니까 그렇게 만족스럽지 못해서 안 쓸 것 같다......

그렇게 회귀하는 시간만 늘어가고

 

아무튼

 

아래는 참고한 글

 

 

https://developer.apple.com/forums/thread/131913

 

Uploading Documents (.png, .jpeg, … | Apple Developer Forums

Hi,We had the requirement to upload documents (.pdf, .jpeg, .png, .jpg) from our iOS app and send it to our backend. I tried to do it using UIDocumentPickerViewController. After clicking on the button to upload, Files folder of iPhone opens, but all the da

developer.apple.com

 

 

 

 

 

 

 

파일 앱을 이용하여 사진을 가져오는 법

이전의 수업 시간에 파일 앱을 이용해서 백업을 하는 법을 배웠던 것 같은데

사진을 가져오는 건 다르지 않으려나!?!?! 하구 한참을 헤맸다

근데 걍 동일한 걸 사용했음,,

사실 생각해 보면 당연한 건데......

파일 앱을 동일하게 사용하고 가져오는 게 백업 파일에서 사진으로만 달라지는 것뿐이었따.

 

extension AdditionalInfoViewController: UIDocumentPickerDelegate {
    // 왠지는 모르겟지만 안돌아감......
    func selectFile() {
        print("hello?")
        let controller = UIDocumentPickerViewController(forOpeningContentTypes: [.png, .jpeg, .webP, .rawImage], asCopy: true)
        controller.delegate = self
        controller.allowsMultipleSelection = true
        present(controller, animated: true, completion: nil)
    }
    
    func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
        var images: [UIImage] = []
        if urls.count > 5 {
            self.sendOneSidedAlert(title: "이미지를 5개 이상 첨부할 수 없습니다!")
        }
        for url in urls {
            guard let image = UIImage(contentsOfFile: url.path) else { return }
            images.append(image)
        }
        self.images = images
    }
}

이런 식으로 구현했는데 돌아가기는 커녕 걍 ㅡㅡ 창이 뜨지도 않는다

거하게 실패함

내일은 조금 더 찾아보고 덜 실패해야겟음

아님 걍 이 기능을 빼거나 ㅡㅡ

 

 

https://stackoverflow.com/questions/48851246/how-to-open-native-files-app-in-ios

 

How to open native files app in ios?

How do i open the native files app of ios using url scheme or some other way ? I tried searching url scheme but had no luck. There seems to be no answer to this question there is thread open for ...

stackoverflow.com

https://developer.apple.com/forums/thread/131913

 

Uploading Documents (.png, .jpeg, … | Apple Developer Forums

Hi,We had the requirement to upload documents (.pdf, .jpeg, .png, .jpg) from our iOS app and send it to our backend. I tried to do it using UIDocumentPickerViewController. After clicking on the button to upload, Files folder of iPhone opens, but all the da

developer.apple.com

 

 

 

 

 

 

 

영수증에서 글자 추출하기

이런 기능을 OCR이라고 하드라

나중에 추가하고 싶음 ㅜ.ㅜ

 

병원 영수증만 찍어도 오늘 한 치료랑 증상 / 병원 이름 / 날짜 등록해서 자동으로 진료 내역 기록해주도록 하는 거임...

진짜 편할듯........ ㅜㅜ

https://support.apple.com/ko-kr/HT212630

 

iPhone 또는 iPad에서 사진 속 텍스트 복사 및 번역하기

라이브 텍스트를 사용하여 사진 또는 비디오의 텍스트를 복사하고, 언어를 번역하고, 전화를 거는 등의 작업을 수행할 수 있습니다.

support.apple.com

https://ohwhatisthis.tistory.com/17

 

[iOS/Swift] VisionKit OCR Api 예제 한글

Swift 언어를 사용하여 Apple Developer에서 제공하는 VisionKit Framework를 사용하여 OCR 개발 서론 VisionKit은 Apple에서 개발한 OCR Api로 VisionKit은 이미지와 iOS 카메라의 Live Video 와 Text 및 구조화된 데이터를

ohwhatisthis.tistory.com

https://jiwift.tistory.com/entry/iOSSwift-Swift-OCR-TesseractOCRiOS%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B8%80%EC%9E%90-%EC%9D%B8%EC%8B%9DText-Recognition

 

[iOS/Swift] Swift OCR - TesseractOCRiOS를 이용한 글자 인식(Text Recognition)

[iOS/Swift] Swift OCR - TesseractOCRiOS를 이용한 글자 인식(Text Recognition) iOS Swift 환경에서 OCR을 적용해보려고 합니다. 정확한 이해보다는 실행에 중점을 두고 진행하겠습니다. 사용할 라이브러리 이름은

jiwift.tistory.com

https://leetaek.tistory.com/76

 

[SwiftUI] VisionKit을 통해 카메라로 찍은 이미지에서 한글 OCR 구현하기

📄목차준비 → 카메라 및 앨범ViewModel VNImageRequestHandlerVNRecognizeTextRequestrequest 실행ViewImage PickerOCRViewCameraView 결과 Reference iOS 11부터 애플이 지원하는 Vision 이라는 프레임워크가 있다. 머신러닝 기

leetaek.tistory.com

마지막은 스유 이용한 거지만 구현은 비슷해서 참고할만한 것 같당. 

 

지금 내원 사유 적다가 생각난 건데 진짜!!! 업데이트 하고 싶당 ㅋㅋ

가면 갈수록 하고 싶은 건 느는데 구현할 시간은 없는 것 같다

앞으로 계속 틈틈이 업데이트 하고 싶음

할 수 있을지는? 잘? 모르겠? 지만? ㅋㅋ

아자아자아자아자

 

 

 

 

 

 

 

TextField.isUserInteractionEnabled

맨날 true / false 값을 헷갈려서 써서 기억하려고 적어놓는다!!!!! 

true로 하면 UserInteractive를 받는 상태를 말한다! apple 공식 문서의 설명으로는

etc-image-0

요렇게 되어 있당.

 

이 프로퍼티 값을 어케 주느냐에 따라서 해당 객체를 이벤트 큐에 넣을지 말지를? 결정하는 거임

해당 객체에서 응답을 받고 싶지 않다면!! 이 값을 false로 설정해 주면 댄다

 

 

 

 

 

pickerView 처음 띄웠을 때 첫 선택지 TextField에 띄워주기

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        speciesTextField.text = "\(Species.allCases[row].toString)"
        return "\(Species.allCases[row].toString)"
    }

구찬아서 나중으로 미루고 있었는데...

너무허망했다.........

그냥..........

기존에 pickerView를 처음 띄워줄 때 title을 설정하니까 그때 걍 textField에 제일 처음 값을 넣어주면 대는 거엿음

난.. 바부.

 

 

 

 

 

 

 

ViewController 내부에 ViewController 추가하기

    let additionalMemo = AdditionalMemoViewController()

추가할 뷰컨이다.

 

 

etc-image-1

요 화면에서 추가로 기록할 내용을 적어주세요! 레이블과 아래 TextView / 카메라 버튼이 저 뷰컨에 해당한다.

뷰로 넣을 수 있는데 뷰컨으로 넣은 이유는... ... 바로 콜렉션뷰 때문이다.

카메라 버튼과 이어져 있는 콜렉션뷰가 코드가 정말 긴데 이 부분을 하나하나 옮길 걸 생각하면? 그냥? 아찔? 해지기 때문에?

뷰컨 안에 뷰컨을 그냥 넣어 버렸다.

 

embed된 뷰컨은 child가 되고 해당 뷰컨을 embed하고 있는 겉에 VC는 부모라고 부르더라

상속 구조 같은듯?!

특성도 상속과 비슷하다.

자식인 뷰컨은 부모 뷰컨을 둘 가질 수 없다.

반면, 부모인 뷰컨은 자식을 여럿 둘 수 있다.

암튼!!

 

 

    func addMemoVC() {
        additionalMemo.willMove(toParent: self)
        self.addChild(additionalMemo)
        view.addSubview(additionalMemo.view)
        additionalMemo.didMove(toParent: self)
    }
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        
        additionalMemo.removeFromParent()
    }

글서 두 부분에서 해당 뷰컨을 나눠줬다.

먼저 addMemoVC를 통해서 부모 뷰컨에 자식 뷰컨을 추가해줬다가 사라질 때는 다른 뷰에서 혹시 해당 뷰컨을 자식으로 쓸 수 있으니 didDisappear 때 사라지게 해줬다.

이게 맞는지는?! 모르겠지만 일단 잘 돌아가긴 한다

c취소

부모 뷰컨을 2개 주니까...

안돌아간다............................

낼 수정해야될듯

 

'TIL' 카테고리의 다른 글

[SeSAC] October 24, 2023  (5) 2023.10.24
[SeSAC] October 19, 2023  (3) 2023.10.19
[SeSAC] October 12, 2023  (1) 2023.10.13
[SeSAC] October 7, 2023  (0) 2023.10.07
[SeSAC] October 3, 2023  (3) 2023.10.04