ios개발/프로젝트

<스위프트 프로젝트> UILabel sizeToFit(), UIImageView에 원격 url에서 가져온 이미지 넣기

studying develop 2020. 3. 7. 18:35

UILabel sizeToFit() : <https://stackoverflow.com/questions/41005172/dynamically-adjust-width-of-uilabel-in-swift-3>

일단 uilabel의 크기 변화는 성공했다.

 

근데 uiviewtable에서 셀의 크기 변화에 실패했다.

 

uiviewtable셀의 높이 설정 방법이 몇가지 있던데 , 동적으로 설정하는 방법 있고, 정적으로가 있는데 주로 estimate 즉 어림치를 미리 설정해 놓고 정적으로 설정하는 편인거 같다. 왜냐하면 동적으로 방법이 두갠가 본거 같은데, 한개는 셀마다 설정값에 따라 정하는 것이고, 다른건 자동 제한인데, 이게 일일이 계산하다 보니 연산량이 많아진다고 카더라; 복잡하네;

 

<https://stackoverflow.com/questions/51498165/how-to-change-height-of-uitableview-cell-in-swift>

동적으로 해보려다 실패해서 , 여기서 말대로 정적으로 그냥 해봤다. 사실 정적으로도 인스펙터에서 하는 방법이랑, 코드에서 하는 방법이 둘다 있는데, 인스펙터에서 도저히 안되서 그냥 포기하는 심정으로 아래 코드를 넣는데 되었다. ㅋㅋ

    //why only this worked?
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
    {
        return 120 //or whatever you need
    }

이렇게 해주니 셀의 높이가 조절되었다.

 

 


 

 

이건 원격 url에서 data로 가져와서 이미지로 변환해서 대입하는건데 일단 잘 안된다.

<https://github.com/ChangYeop-Yang/Study-iOS/blob/master/%5BiOS%5D%20Kakao%20Pay%20Subject/KakaoPaySubject/KakaoPaySubject/ViewController%20Files/Common%20Files/UIImage.swift>

<https://www.hackingwithswift.com/example-code/uikit/how-to-load-a-remote-image-url-into-uiimageview>

 

 

근데 지금 이것도 안된다. <https://baked-corn.tistory.com/124>

 

이렇게 이미지뷰가 잘린다. ;;

 

 

이제 다시 img를 가져와 보자.

아래 처럼 코드를 실행했는데, data to img부터 출력이 안된다.

extension UIImageView{
    func load(url : URL){
        DispatchQueue.global().async { [weak self] in
            if let data = try? Data(contentsOf: url) {
                print("got img data")
                if let image = UIImage(data: data){
                    print("data to img")
                    DispatchQueue.main.async{
                        self?.image = image
                        print("image set in uiview")
                    }
                }else{
                    print("UIImage not working")
                }
            }
        }
    }
}

info.plist에 추가 설정하고 <https://tom7930.tistory.com/39> 이거 보고 생각남 찾다가 .

 

<https://github.com/rubenbaca/cs193p_iOS11/blob/master/PlayingCard/PlayingCard/Assets.xcassets/J%E2%99%A6%EF%B8%8F.imageset/jack.jpg?raw=true> 이 주소는 깃헙에 이미지에서 가져온건데 처음에 ?raw=true를 빼고 적어서 안되었는데 이제 된다. 위 코드는 이상없는 걸로ㅋㅋ