私はUIImageViewを含むtableViewを持っていて、画像にURLがあれば画像が表示され、そうでなければ画像は表示されません。私が持っている問題は、画像がない場合、大きな空白のスポットが、画像があるかのようにTableViewに表示されることです。空白を減らす方法や隠す方法はありますか?イメージは中央の大きなUIImageViewです。それが戻ってくる文字列は2文字以上を持っているならば、それは有効なURLだとイメージがダウンロードされる基本的IOS SwiftどのようにTableView内の画像のスペースを非表示にすることができます
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "MyFeed", for: indexPath) as! MyFeed
if stream_image_string[indexPath.row].characters.count > 2 {
let strCellImageURL = self.stream_image_string[indexPath.row]
let imgURL: NSURL = NSURL(string: strCellImageURL)!
let request:NSURLRequest = NSURLRequest(url: imgURL as URL)
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let task = session.dataTask(with: request as URLRequest, completionHandler: {(data, response, error) in
DispatchQueue.main.async(execute: {() -> Void in
cell.post_image.image = UIImage(data: data!)
})
});
task.resume()
} else {
cell.post_image!.isHidden = true
cell.post_image!.image = nil
}
return cell
}
イメージに来るとき、これは私のコードです。私は、に焦点を当てています部分は、else文と、このコードで
else {
cell.post_image!.isHidden = true
cell.post_image!.image = nil
}
だから、明らかにそれは、elseステートメントに行くならば、そこには画像がありませんし、私がnullに画像を設定するかnilが、私は隠そう
イメージを隠して設定しても余分な空白はありますが動作しません。どのように私は空白を非表示にすることができますか?また、私はこの質問を読んでてきたが、それはiOS swift imageView cannot be hidden in TableViewCell
を削除することにより、ゼロからセルを作成し、独自のコンテンツにビデオを適応させる最も簡単な方法(私はこのような画像の幅を0に変更することです。 – Axel
imageViewの幅制約のコンセントを作成し、画像がない場合はその定数をゼロにします。 –
イメージをアウトレット(カスタムイメージビュー)で使用する場合は、2つの異なるセルを作成できます。それ以外の場合は、イメージビューをランタイムとして使用する必要があります。 –