ios - 如何在自定义 UICollectionView 旋转后触发 drawrect?

标签 ios swift uikit uicollectionview uicollectionviewlayout

在自定义 UICollectionView(具有客户 UICollectionViewCell 和 UICollectionViewLayout)的设备旋转之后,如何触发重绘(即调用 drawrect)?

自定义 UICollectionViewCell 的额外功能:

    override func drawRect(rect: CGRect) {
        let path = UIBezierPath(roundedRect: self.bounds.insetBy(dx: 1, dy: 1), cornerRadius: 50)
        path.lineWidth = 3
        UIColor.blueColor().setStroke()
        path.stroke()
    }

轮换前

Before rotation

旋转后(布局已更新,注意标签已移动,但在 drawRect 中绘制的椭圆形并未移动,日志记录显示旋转时未调用“drawRect”)

After rotation

最佳答案

旋转后需要调用cell.setNeedsDisplay()。这将导致单元格的 drawRect: 方法再次被触发。

关于ios - 如何在自定义 UICollectionView 旋转后触发 drawrect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194644/

相关文章:

ios - 为什么上标数字的Unicode字符显示高度不一样?

iOS UINavigationBar 按钮在 segue 返回后仍然褪色

ios - SwiftUI:@State 已修改但在阅读之后的行时看似未更改

ios - 从 firebase 获取的图像在将它们添加到 tableViewCells 的过程中被复制了吗?

ios - 如何动画从 TableView (rxswift)中删除单元格?

ios - 在 iOS 中从 Microsoft Health Cloud API 获取用户健康数据

ios - popViewController 操作后的上边距 UITableViewController

ios - 为什么这个图像一直向下移动(objective-c)?

ios - 必须在应用启动周期调用 `registerUserNotificationSettings:` 吗?

ios - 从后台线程调用 UIKit 时发出警告