collectionview overlap 되는 이미지와 버튼 기기별 조정(?)

2016. 9. 2. 11:35Programming/Swift

반응형

아래와 같은 이미지를 만들려고 한다.



storyboard에 비스무리하게 만들었다.



layout을 맞춰주기 위해서 아래와 같이 size을 임의로 조절 하였다.

 func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

        let screenSize = UIScreen.mainScreen().bounds

        let screenHeight = screenSize.height

        

        var width: CGFloat? = nil

        var height: CGFloat? = nil

        

        // 아래 CGFloat 수치는 임의 수를 넣은 것이기 때문에 layout이 화면과 안맞을 수 있다.

        if(screenHeight == 568) {

            width = 5

            height = 7

        } else if(screenHeight == 667) {

            width = 5

            height = 6

        } else if(screenHeight == 736) {

            width = 5

            height = 5

        }

        

        return CGSize(width: (collectionView.frame.size.width)/width!, height: (collectionView.frame.size.height)/height!)

    } 


여기서 문제가 생김.

6s와 6s 플러스는 정상적(?)으로 보여지나 5s는 제대로(?) 보여지지 않았음.


해당 스토리보드는 6s를 기준으로 하여 만들었기에 6s플러스도 완전하게 정상적으로 보여지지는 않았다. 그냥 봐줄만한 정도랄까나

5s는 봐줄만한 정도를 넘어서 button 이미지가 image와 동떨어져 있거나, 코딱지 만하게 보이거나 아예 사라져버림.(제대로 보이기 위해 다양한 시도를 했음)

해당 원인은 추측하건데, 동떨어진 것은 cell안에 이미지와 버튼 사이즈가 작아지면서 각자 위치를 찾아가고 있었던 듯하다. 

그림이 많이 구리지만 예를 들면 아래와 같다.

그리고 코딱지만하게 보이거나 사라져버리는 경우는 버튼 이미지가 심하게 작아진 경우가 될 것으로 보인다.



해결방법(?)을 보자. 테스트의 제약이 있을 수 있겠으나, 현재까지 본 상황으로 무리없이 잘 보임.






"Resolve Auto Layout Issues" 클릭하여 "Update Constraints" 를 클릭한 후 실행해 보라.


반응형