【问题标题】:Round UIImage disappear in UITableViewCell only in Swift 3仅在 Swift 3 中,圆形 UIImage 在 UITableViewCell 中消失
【发布时间】:2016-10-18 04:37:34
【问题描述】:

仅在 Swift 3 中,圆形 UIImage 在 UITableViewCell 中消失,在以前的版本中它工作正常,但我没有得到任何最佳解决方案。

这是我的代码:-

   cell.imgView_User.layer.cornerRadius = cell.imgView_User.frame.width/2
   cell. imgView_User.layer.masksToBounds = false
   cell.imgView_User.clipsToBounds = true
   cell.contentView.layoutIfNeeded()

【问题讨论】:

    标签: ios uiimageview uiimage swift3


    【解决方案1】:

    在我的情况下,以下是我的工作代码:

     let imageview = cell.viewWithTag(105) as! UIImageView
     imageview.layer.cornerRadius = imageview.frame.width/2
     imageview.clipsToBounds = true
     imageview.layer.borderWidth = 1.0;
     imageview.layer.borderColor = UIColor.black.cgColor
    

    我设置了边框颜色来识别我们的结果。

    【讨论】:

      【解决方案2】:

      手动设置cornerRadius为我解决了这个问题。

      例如:

      imgView.layer.cornerRadius = 20.0;
      

      仅当您知道图像视图的框架不受自动布局影响时才使用此选项。即固定大小。

      【讨论】:

        【解决方案3】:

        在 iOS 10 中,所有图层操作都在 uiviewController 的 "viewDidLayoutSubviews" 或 "viewDidAppear" 方法中进行。

        对于 UITableViewCell 或 collectionViewCell ,子类你的单元格并在“drawRect”方法中编写图层操作

        对于您的情况,例如:

        override func draw(_ rect: CGRect) {
            self.imgView_User.layer.cornerRadius = self.imgView_User.frame.width/2
            self.imgView_User.layer.masksToBounds = false
            self.imgView_User.clipsToBounds = true
        }
        

        【讨论】:

        • 不,不要将此代码放入drawRectlayoutSubviews 是存放此类代码的好地方。
        • drawRect 应该只用于绘制视图的内容。这段代码都没有绘制视图的内容。此外,这三行中的两行只需要调用一次,而不是一遍又一遍。只有当视图的框架发生变化时才应该调用第一行。使用drawRect 可能有效,但这并不意味着它是正确的解决方案。将代码放在它所属的地方,而不是它恰好可以工作的地方。
        • 但是如何将单元格图像放置在 viewDidLayoutSubviews 中?
        • @amit ...在“viewDidLayoutSubviews”方法中对ViewController的子视图进行分层操作。对于自定义单元格,在“drawRect”或“layoutSubviews”方法中进行
        • @rmaddy .... 如果我输入“layoutSubviews”,代码将不起作用,视图不可见
        猜你喜欢
        • 2019-10-17
        • 1970-01-01
        • 1970-01-01
        • 2020-02-10
        • 1970-01-01
        • 2011-09-25
        • 1970-01-01
        • 2018-10-26
        • 1970-01-01
        相关资源
        最近更新 更多