- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试创建一个动态的 UICollectionView,其单元格会根据其中的文本自动调整大小。但由于某些原因,我的自定义 UICollectionViewCell 不会扩展到全宽。我正在使用 SnapKit作为 AutoLayout,我所有的 View 都是基于代码的;没有 xib 或 Storyboard。这是我目前得到的调试 View :
我希望单元格扩展整个宽度和高度以适应任何内容。这是我的 UICollectionViewController
上的一个片段override func viewDidLoad() {
super.viewDidLoad()
self.title = "Home"
let layout = UICollectionViewFlowLayout()
layout.itemSize = CGSize(width: view.frame.width, height: view.frame.height)
layout.scrollDirection = .vertical
layout.estimatedItemSize = CGSize(width: 375, height: 250)
collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height), collectionViewLayout: layout)
collectionView.dataSource = self
collectionView.delegate = self
collectionView.backgroundColor = UIColor(red: 245/255, green: 245/255, blue: 245/255, alpha: 1)
collectionView.register(HomeCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
self.view.addSubview(collectionView)
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath)
// Configure the cell
if let c = cell as? HomeCollectionViewCell {
c.contentView.frame = c.bounds
c.contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
configureCell(c, indexPath: indexPath)
}
return cell
}
func configureCell(_ cell: HomeCollectionViewCell, indexPath: IndexPath) {
cell.setText(withTitle: items[(indexPath as NSIndexPath).section].title)
}
这是我的自定义 UICollectionViewCell
的片段override init(frame: CGRect) {
super.init(frame: frame)
self.contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
self.contentView.translatesAutoresizingMaskIntoConstraints = true
self.contentView.bounds = CGRect(x: 0, y: 0, width: 99999, height: 99999)
createTitle()
}
private func createTitle() {
titleView = TTTAttributedLabel(frame: CGRect(x: 0, y: 0, width: contentView.frame.width, height: 56))
titleView.tag = 1
titleView.numberOfLines = 2
titleView.delegate = self
titleView.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(titleView)
titleView.snp_updateConstraints(closure: {
make in
make.leading.trailing.equalTo(contentView).offset(10)
make.top.equalTo(contentView).offset(10)
make.bottom.equalTo(contentView).offset(-10)
})
}
func setText(withTitle title:String, paragraph: String, image: String) {
let titleAttributed = AttributedString(string: title, attributes: titleStringAttr)
titleView.attributedText = titleAttributed
titleView.sizeToFit()
}
我已经花了 3 天的时间不停地研究这个问题。感谢任何建议!
最佳答案
嗯,这并不是真正的解决方案,但 TTTAtributedLabel
做了一些黑魔法,导致 AutoLayout 无法工作。所以对我来说,我将 TTTAtributedLabel
更改为 UILabel
,它工作正常。
仅供引用,我在 SnapKit Github 问题上发布了类似的问题;将提示归功于 robertjpayne ( https://github.com/SnapKit/SnapKit/issues/261 )
关于ios - 带有 AutoLayout 的 UICollectionViewCell 在 iOS 10 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38595602/
在 iOS Autolayout 中,我应该添加什么约束来设置与 Superview(在我的例子中是 UIViewController 的 View )成比例的宽度和高度,使用 Autoresizin
我有一个主屏幕,三个按钮垂直对齐。我想在 4"屏幕上采用我的应用程序。所以我想平均调整按钮之间的空间以填满屏幕。看下面的图片:我怎样才能使用 AutoLayout 完成它? 绿色区域保持其大小。 最佳
我在窗口中有一个 View , View 的位置和大小是通过自动布局计算的。该 View 有一个 subview ,一个可拖动的 NSView 子类。通过覆盖 -mouseDown: 和 -mouse
在 Interface builder 中,size classes 的强大功能让您可以安装或卸载约束。在代码中,您可以通过切换 active 属性来做类似的事情。 Interface Builder
我一直在开发具有相当复杂的包含 View Controller 层次结构的企业 iPad 客户端应用程序。我最近不得不在应用程序启动 View (服务器登录 View )中重新设计。我决定借此机会使用
环境: iOS 6/7、Xcode 5 中的自动布局。 我知道要调整 NavBar 以适应状态栏,我将 NavBar 的背景图像设置为 64 位高(引用:WWDC 2013 Video Lecture
我正在尝试创建一个包含一些垂直放置的按钮的 View ,并且我希望在调整窗口大小时按钮之间的间距相等。该 View 的约束(使用视觉格式)是: H:|-0-[button1]-0-| H:|-0-[b
最近在 Xcode 5 中切换到自动布局(并且观看了 WWDC 13 的开发人员视频),我发现除了基于 View 的 NSOutlineView 之外,其他东西都可以很好地工作。 在自动布局之前,这是
这个问题已经有答案了: Seeing black bars at the top and bottom of the iPhone X Simulator (11 个回答) 已关闭 6 年前。 今天,
对于iPhone 6+的风景和肖像,我有不同的尺寸等级。如果我从横向或纵向开始运行,则不会出现任何约束错误。当我从横向或纵向切换时,会遇到约束错误。看来,如果我切换,则会同时获得纵向和横向尺寸类别约束
我遇到了 AutoLayout 的问题,这让我非常头疼。我使用 Autolayout 在 .xib 中设置了 ScrollView 和容器 View 。我需要动态地将 subview 添加到容器 Vi
我正在构建一个通用的工作流客户端应用程序,它应该使用来自多个源的工作流任务,甚至可以在理想情况下稍后添加,而无需更改应用程序代码。这个想法是应用程序将适应数据结构、类型、UI 和操作元素,理想情况下还
我得到了通常的 Unable to simultaneously satisfy constraints. Probably at least one of the constraints in th
我有以下代码,当我的应用程序出现问题时,会显示包含不同消息的警报。该代码多年来一直运行良好,并且存在于我在 App Store 上的大多数应用程序中。 我正在制作一个新应用程序,只是添加了此代码,但是
我在 UIStoryboard 中添加一个 UIView 并将其绑定(bind)到一个名为 testView 的自定义 UIView 类,接下来,我创建一个 UIView 在 require init
该应用程序允许用户发布图像/关注其他人等。 所以它工作正常,但我收到以下警告:(我知道有些与自动布局约束有关,但我如何知道哪个导致了问题?) 2015-07-05 17:19:37.701 Pixym
假设我有一个包含两列对象的 View 。第一列包含标签,第二列包含 slider 。我希望 slider 全部向左对齐。我希望所有标签都相互对齐。诀窍是,如何设置标签和 slider 之间的间距,以便
我有一个 View ,我在自动布局上设置了这个 View 。当我在 4s iphone 中更改按钮框架/位置时,我无法更改它。如何更改ios 4s中的按钮位置注意不更改自动版式属性? 这是我的代码:
我正在尝试为 iPad 和 iPhone 构建一个包含大约 10 个不同文本字段、开关和标签的表单。在这样做时,我想将 AutoLayout 与 UIScrollView 一起使用,以便它可以在 iP
我将尝试描述这个问题——以前从未见过这种行为。 当应用程序在模拟器或实际设备上启动时,我有一个按钮从应用程序屏幕的右侧移动到中间。我希望它始终位于中间(移动到的位置)。 基本上,它从父 View 上的
我是一名优秀的程序员,十分优秀!