升级到 xcode 7 后的自动布局问题

Posted

技术标签:

【中文标题】升级到 xcode 7 后的自动布局问题【英文标题】:Autolayout issues after upgrading to xcode 7 【发布时间】:2015-11-17 01:33:43 【问题描述】:

我有一个UITableViewController,其中包含一组带有一些动态内容的静态 UITableViewCell,但升级到 XCode 7 后,单元格不再调整大小,并且内容与下面的单元格重叠。我注意到故事板中添加了以下“rect”标签。

<rect key="frame" x="8" y="8"  />

单元格内的内容是UIImageView,具有 1:1 的比例约束,因此它始终贴在两侧并调整高度。

UITableViewCell 的约束。

<tableViewCell userInteractionEnabled="NO" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" id="TeM-3R-AKy">
                                    <rect key="frame" x="0.0" y="124"  />
                                    <autoresizingMask key="autoresizingMask"/>
                                    <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="TeM-3R-AKy" id="Ul9-Ad-TSI">
                                        <rect key="frame" x="0.0" y="0.0"  />
                                        <autoresizingMask key="autoresizingMask"/>
                                        <subviews>
                                            <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" restorationIdentifier="yolo" translatesAutoresizingMaskIntoConstraints="NO" id="Dno-dR-6h7">
                                                <rect key="frame" x="0.0" y="0.0"  />
                                                <animations/>
                                                <constraints>
                                                    <constraint firstAttribute="width" secondItem="Dno-dR-6h7" secondAttribute="height" multiplier="1:1" id="4gQ-ye-O6k"/>
                                                    <constraint firstAttribute="height" priority="999" constant="60" id="cBT-jH-WiC"/>
                                                </constraints>
                                            </imageView>
                                        </subviews>
                                        <animations/>
                                        <constraints>
                                            <constraint firstAttribute="trailing" secondItem="Dno-dR-6h7" secondAttribute="trailing" id="0K4-U7-ueq"/>
                                            <constraint firstItem="Dno-dR-6h7" firstAttribute="leading" secondItem="Ul9-Ad-TSI" secondAttribute="leading" id="2ER-Tt-FFc"/>
                                            <constraint firstAttribute="bottom" secondItem="Dno-dR-6h7" secondAttribute="bottom" priority="999" id="jfg-iH-H9u"/>
                                            <constraint firstItem="Dno-dR-6h7" firstAttribute="top" secondItem="Ul9-Ad-TSI" secondAttribute="top" id="mcU-xf-gfx"/>
                                        </constraints>
                                    </tableViewCellContentView>
                                    <animations/>
                                </tableViewCell>

可能重复: ios8 self-sizing static TableView cells with Interface Builder

【问题讨论】:

重置约束一次,如果您仍然遇到问题,请尝试。 @PK20 你的意思是重置为建议?您指的是哪些约束?我不认为 xcode 知道我想做什么.. 但是我尝试在将 UIImageView 安装到单元格中后重置它的约束而没有结果。 未重置为建议值。当您升级到 Xcode7 时,约束可能没有正确复制。最好清除所有约束并重新设置。我知道这很痛苦,但这是唯一的方法。 啊。试过了。结果相同。也许 xcode 7 发生了一些变化,或者我做错了什么。 你能透露你为单元格设置的约束吗? 【参考方案1】:

这似乎是一个类似的问题,如下所述: iOS8 self-sizing static TableView cells with Interface Builder

为了让静态UITableViewCell 根据其内容自动调整大小,您必须添加以下代码行: iOS8: Possible to use “tableview.rowHeight = UITableViewAutomaticDimension” for static cells?

【讨论】:

以上是关于升级到 xcode 7 后的自动布局问题的主要内容,如果未能解决你的问题,请参考以下文章

为啥自动布局在 xcode 7.2 中不再起作用?

Xcode 7.3 (swift 2) 中的自动布局

XCode 6.0.1 ios 7 自动布局

手动升级到 xcode iOS 7 布局?

具有自动布局的 UITableviewCell 约束失败

如何使用自动布局 beta 7 UIKIT 修复 xcode 11 中可滚动内容大小的歧义