반응형

사용 목적은 드랍박스를 만들려고했는데 IOS에서 텍스트 필드가 수정이 되고 커서가 깜빡여서 이를 수정하기 위한작업이였음. 

다른방법이 물론 있겠지만... 일단 원초적으로 ...

안드로이드는 이런식으로 스피너를 사용하여서 포커스에 대한 문제가없다. 
반면 IOS는 이런식으로 별도로 설정을 해주지않으면 UITextField 수정이 가능하며 커서도 깜빡인다. 

 

일단먼저 UITextField 수정 안되는거 막을려면 

 UITextFieldDelegate 등록 후 해당 TextField를 등록해주고 

 

mDeadDateDropBox.delegate = self

 

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

        return false

    }

 

위에 델리게이트메서드를 등록해주면됨... ( 간닪나건데 잘 나와있지 않다.. )

 

그리고 커서 깜빡이는거는 

mDeadDateDropBox.tintColor = .clear

이렇게 등록해주면 해결됨. 

반응형

'IT 이야기 > 2021_IOS' 카테고리의 다른 글

TableView Section reload  (0) 2021.08.10
IOS Date객체 관련...  (0) 2021.08.04
UITableView Cell의 하위 itemView Action  (0) 2021.06.24
UILabel 깜빡이는 애니메이션.  (0) 2021.06.21
반응형

 

func txtAnimated() {

        UIView.animate(withDuration: self.txtTime,

                               delay: 0,

                               options: [.curveLinear],

                               animations: {

                                self.mDeadLineTxt.alpha = 0.0

                               },

                               completion: { _ in

                                UIView.animate(withDuration: self.txtTime,

                                                       delay: 0,

                                                       options: [.curveLinear],

                                                       animations: {

                                                        self.mDeadLineTxt.alpha = 1

                                                       },

                                                       completion: { _ in

                                                        if self.isTimeAnimated {

                                                            self.txtAnimated()

                                                        }

                                                       })

                               })

    }

 

 

** 설명

self.txtTime 은 TimeInterval형이다 

options 의 [.curveLinear]은 일정속도로 애니메이션 효과를 준다. ( 자세한것은 찾아보시고. )

 

animations를 정의해주고 self.txtTime의 시간이 지나면 completion이 호출이되는데 

이 호출되는 부분에 애니메이션을 정의해준다. 완료시점에는 재귀호출로 종료해주면된다. 

 

self.isTimeAnimated는 Bool형 이고 생명주기에따라 재귀를 멈춘다.  

 

주의할점은 completion말고 animations 애니메이션을 중첩으로 넣어주면

일정시간에 호출이 되는것이 아니라 바로 호출되서 애니메이션이 꼬인다. 

이부분 참고해서 작업하면된다. 

반응형
반응형

음.. 일단 Crashlytics 필요한 이유는 안드로이드를 개발을 완료했어도 

다른 기기나 버전에서 오류가 날 수 있기 때문이다. 

 

그래서 Crashlytics 등록을 해놓으면 오류가나면 어떤 오류인지 볼 수 있고 이에 대응이 가능함. 

 

1. firebase 들어가서 Project를 생성하자 . 

firebase.google.com/docs/crashlytics/get-started?hl=en&platform=android

위에 들어가면 잘나와있음.

 

2. 설정을 완료하면 앱 실행시 Crashlytics 관련 오류가 날거다

3. 아래 firebase  콘솔 > 출시 및 모니터링 > Crashlytics > 사용 설정 버튼을 클릭하게 되면 

4.아래처럼 프로그레스바가 돌면서 오류를 강제로 던지라고 한다. 

5. 강제로 버튼 리스너 걸어서 throw 던져주면 캐치되면서 리포트 화면으로 넘어간다. 

6.

설정 완료되었고 디테일하게 하고싶으면 레퍼런스 잘 읽고 하면됨. 

 

반응형

+ Recent posts