2016-03-08 2 views
0

Привет, ребята, поэтому я недавно имел дело с UITableViews в iOS. и мой UITableView возвращает некоторые странные результаты ..UITableView возвращает wierd размеры

Некоторые фотографии, чтобы показать

Then The first cell is so big.

Then the 2nd Cell looks like this

Эти все ячейки варьируется в зависимости от размеров ..

И код для класса это

import UIKit 
    import FLAnimatedImage 

    class ShotDetailTableViewController: UITableViewController { 


     @IBOutlet weak var bgImageView: FLAnimatedImageView! 

     @IBOutlet weak var viewsCount: UILabel! 
     @IBOutlet weak var likesCount: UILabel! 
     @IBOutlet weak var commentsCount: UILabel! 

     @IBOutlet weak var avatarImageView: UIImageView! 
     @IBOutlet weak var usernameLabel: UILabel! 
     @IBOutlet weak var descriptionLabel: UILabel! 

     @IBOutlet weak var reboundCount: UILabel! 
     @IBOutlet weak var attachmentCount: UILabel! 

     @IBOutlet weak var tagsCollectionView: UICollectionView! 
     @IBOutlet weak var reboundCollectionView: UICollectionView! 
     @IBOutlet weak var attachmentCollectionView: UICollectionView! 

     @IBOutlet weak var commentTableView: UITableView! 

     var shots : [Shot] = [Shot]() 
     var comments : [Comment] = [Comment]() 
     var shot : Shot! 

     var reboundPages = 1 
     var attachmentPages = 1 

     override func viewDidLoad() { 
      super.viewDidLoad() 

      title = shot.title 

      bgImageView.sd_setImageWithURL(NSURL(string: shot.imageUrl), placeholderImage: UIImage(named: "1"), options: .ContinueInBackground) 

      viewsCount.text = "\(shot.viewsCount)" 
      likesCount.text = "\(shot.likesCount)" 
      commentsCount.text = "\(shot.commentCount)" 

      avatarImageView.sd_setImageWithURL(NSURL(string: shot.user.avatarUrl), placeholderImage: UIImage(named: "2")) 

      usernameLabel.text = "\(shot.user.username)" 
      descriptionLabel.text = "\(shot.description)" 

      reboundCount.text = "\(shot.reboundCount)" 
      attachmentCount.text = "\(shot.attachmentsCount)" 

      commentTableView.delegate = self 
      commentTableView.dataSource = self 
      commentTableView.estimatedRowHeight = 100.0; 
      commentTableView.rowHeight = UITableViewAutomaticDimension; 
      commentTableView.separatorStyle = UITableViewCellSeparatorStyle.None 

      let api = DribbleObjectHandler() 
      api.loadComments(shot.commentsUrl, completion:didLoadComments) 

      NSUserDefaults.standardUserDefaults().setValue(true, forKey: "_UIConstraintBasedLayoutLogUnsatisfiable") 
     } 


    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
     if tableView == commentTableView { 
     return UITableViewAutomaticDimension 
     } else { 
     return UITableViewAutomaticDimension 
     } 
    } 

     override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 
      avatarImageView.clipsToBounds = true 
      avatarImageView.layer.cornerRadius = 25 

      self.commentTableView.reloadData() 
     } 

     func didLoadComments(comments : [Comment]){ 
      self.comments = comments 
      self.commentTableView.reloadData() 
     } 

     // MARK: - Table view data source 

     override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
      // #warning Incomplete implementation, return the number of sections 
     if tableView == commentTableView { 
      return 1 
     } else { 
      return 1 
     } 
     } 

     override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
      // #warning Incomplete implementation, return the number of rows 
      if tableView == commentTableView { 
       return comments.count 
      } else { 
      return super.tableView(tableView, numberOfRowsInSection: section) 
      } 
     } 

     override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
      if tableView == commentTableView { 
      let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CommentCell 

      // Configure the cell... 
       let comment = comments[indexPath.row] 

       //cell.nameLabel.text = comment.user.name 
       // cell.commentLabel.text = comment.body 

       //cell.avatarImageView.sd_setImageWithURL(NSURL(string: comment.user.avatarUrl), placeholderImage: UIImage(named: "2")) 
       cell.avatarImageView.image = UIImage(named: "2") 

       return cell 

      } else { 
       let cell = super.tableView(tableView, cellForRowAtIndexPath: indexPath) 
       return cell 
      } 
     } 
     override func didReceiveMemoryWarning() { 
      super.didReceiveMemoryWarning() 
      // Dispose of any resources that can be recreated. 
     } 

    } 

Когда я реализовать heightForRowAtIndexPath Tableview получает очень маленький , к сожалению, я не могу положить больше чем 2 ссылки .. поэтому я не могу показать изображение и я не получаю ошибки в журнале

Я пытался найти вопросы, связанные с этим, но может не очень много находят.

Заранее спасибо арийской

ответ

1

Попробуйте вместо реализации estimatedHeightForRowAtIndexPath, реализации heightForRowAtIndexPath.

+0

Нет .. Это не так. –

+0

@AryanKashyap Вы либо невежественны, либо не понимаете ответа. У вас нет 'heightForRowAtIndexPath' в вашем делетете источника данных (код, который вы показали), поэтому« Нет .. Это не »не является соответствующим комментарием (не уверен, что комментарий до этого был удален, если это так, пожалуйста, извинись перед моим заявлением). –

+0

Прошу прощения за грубость, я имел в виду, что я попытался ее реализовать, но все равно то же самое. –

Смежные вопросы