Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

subclass CardImageView의 사이즈는 속성으로 고정하고 VC에서 origin만 부여하여 생성하는 방법 #9

Closed
jinios opened this issue Apr 17, 2018 · 1 comment
Assignees
Labels
question Further information is requested
Milestone

Comments

@jinios
Copy link
Owner

jinios commented Apr 17, 2018

Q. 어차피 카드 이미지의 크기는 모두 똑같고, 계산해놓은 카드 이미지 사이즈을 알 수 있기 때문에 CardImageView에 속성을 지정해놓은것처럼 사이즈도 fix시키고, VC에서는 origin만 알려주고 생성하면 더 효율적이지 않을까?

<예상되는 문제점>

  • 지금은 cardSize라는 computed property가 VC에 있기때문에, VC의 루트 뷰 frame 기준으로 카드의 가로, 세로 길이를 구한 것을 코드만 봐도 알 수 있다. 하지만 만약 이 값을 CardImageView내부에서 바로 상수로쓰면, 다른 사람은 이 값이 어떻게 구해진건지 알 수 없다.
  • 또한 루트뷰에 추가되는 서브뷰이므로 사이즈를 계산하고 부여하는게 VC에서 바로 볼 수 있는게 더 자연스러울 수도 있다.
  • 또한 만약 디바이스가 변경된다면 루트뷰의 frame이 달라지기때문에 상수로 선언한 카드사이즈가 다른 디바이스 뷰 상에서는 맞지 않을 수 있다.
  • 매번 subView의 크기를 루트뷰의 frame에 따라 계산해야한다면, subView에서는 superView의 frame을 알아와서 계산하고, 계산한 값을 init()내부에서 size로 fix할 수 있는지? 만약 가능하다면 이 방법이 자연스러운건지?_?
@jinios jinios added the question Further information is requested label Apr 17, 2018
@jinios jinios added this to the Step3 milestone Apr 17, 2018
@jinios jinios self-assigned this Apr 17, 2018
@jinios
Copy link
Owner Author

jinios commented Apr 22, 2018

A. (JK의 코멘트와 나의 의견을 조합해서 생각해본 답변)

  • convenience이 init내에 CGSize값을 고정해놓으면 물론 질문대로 사용할 수도 있다.
  • 하지만 frame은 superview를 기준으로 구하는 origin이 필요한 값이기때문에, frame자체를 스스로 계산할 수는 없다. fix된 사이즈를 subview가 갖고있다고해도 슈퍼뷰에서 위치를 지정해주는 코드를 작성해야하기때문에, 꼭 저 방법이 더 효율적이라고 할 수는 없다. 특히 superView를 관리하는 ViewController의 코드가 더 짧아진다는 것은 해당 방법을 사용했을때 따라오는 장점이라고 하기엔 애매한 부분이 있다.
  • 어차피 frame은 superview를 기준으로 구하는 값이기때문에 superview에서 subview로 추가할 UIView를 만들면서 속성을 지정하는게 더 자연스럽다.

@jinios jinios closed this as completed Apr 22, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant