gpt4 book ai didi

ios - 来自 XIB 的自定义 UIView 加载巨大的 subview

转载 作者:行者123 更新时间:2023-11-30 13:41:44 29 4
gpt4 key购买 nike

我遇到了自定义 UIView 实现的问题。我想做的是对 UICollectionViewCell 进行动画处理,并在单元格缩放并在另一侧“翻转”后创建一个新 View 。 (将 UICollectionViewCells 视为卡片)。

我成功地实现了所需的动画。但是,当我从 XIB 文件的代码中创建 View 时,似乎应用了约束,但所有内容的大小都被放大了。我将标签的最小字体比例设置为 0.2,但它似乎不起作用。

这是在IB中设计的 View :

View designed in IB with constraints

现在,当动画继续向单元格 View 添加新的 CardBackView 时,我得到的结果是:

The horrendous result

这是执行动画并添加卡片背面 View 的代码:

// now flip card and show other side of card
UIView.transitionWithView(cell, duration: duration, options: [.BeginFromCurrentState, .TransitionFlipFromRight, .CurveEaseInOut], animations: { () -> Void in

let cardBackView = NSBundle.mainBundle().loadNibNamed("CardBackView", owner: self, options: nil).first as! CardBackView
cardBackView.frame = cell.bounds
cardBackView.titleLabel.text = movie.title
cardBackView.titleLabel.textColor = UIColor.whiteColor()
cardBackView.overviewLabel.text = movie.overview
cardBackView.backgroundColor = UISettings.TabBarColor
cell.addSubview(cardBackView)

}, completion: nil)

最佳答案

当您将 CardBackView 添加到 Cell 时,它假定您将自动调整大小掩码转换为约束,因此它的行为可能会很奇怪。要解决此问题,您需要为 CardBackView 创建约束并将它们添加到您的 Cell(它的父级)中。

如果您的 CardBackView 应使用与您的 Cell 相同的大小,则类似以下内容应该有效:

cardBackView.translatesAutoresizingMaskIntoConstraints = false
cell.addConstraint(NSLayoutConstraint(item: cardBackView, attribute: .Top, relatedBy: .Equal, toItem: cell, attribute: .Top, multiplier: 1, constant: 0))
cell.addConstraint(NSLayoutConstraint(item: cardBackView, attribute: .Bottom, relatedBy: .Equal, toItem: cell, attribute: .Bottom, multiplier: 1, constant: 0))
cell.addConstraint(NSLayoutConstraint(item: cardBackView, attribute: .Left, relatedBy: .Equal, toItem: cell, attribute: .Left, multiplier: 1, constant: 0))
cell.addConstraint(NSLayoutConstraint(item: cardBackView, attribute: .Right, relatedBy: .Equal, toItem: cell, attribute: .Right, multiplier: 1, constant: 0))

关于ios - 来自 XIB 的自定义 UIView 加载巨大的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35490759/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com