我想向你们澄清我的问题。
最近我只是将我的Xcode升级到最新的Xcode 6.0.1(Maverick OS)并继续我的Xcode 5创建的项目没有问题。
直到我创建新的UITableViewCell并且放置少量具有固定底部边距的视图..当在控制器中显示时它被弄乱了。具有固定底部边距的视图Y位置搞砸了, 但是......在Xcode 5上创建的现有UITableViewCell没有发生。它也有固定底部边距的View,但是错误确实发生了,当我调整UITableViewCell的大小时它调整位置就好了
继续我的调试,我尝试重新创建现有的UITableViewCell并得到相同的错误。经过多次测试后,我决定通过在文本编辑器中打开XIB来比较视图,发现导致错误的一点差异。
您可以比较2 UITableViewCell之间的结果。左图是使用在Xcode 5上创建的现有UITableViewCell,在Xcode 6上创建的右侧。" text 2"标签Y位置搞砸了,超出了单元格高度。
如果您检查Xcode IB,则所有设置都相同。但文本编辑器揭示了更多
现有的UITableViewCell(Xcode 5)
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="WSPostCell" rowHeight="100" id="PdK-a2-c84" customClass="WSPostCell">
<rect key="frame" x="0.0" y="0.0" width="320" height="100"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="PdK-a2-c84" id="Y9d-Wv-BGf">
<rect key="frame" x="0.0" y="0.0" width="320" height="99"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text 1" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Vuu-pP-JOA">
<rect key="frame" x="20" y="8" width="280" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text 2" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="40X-YI-rMb">
<rect key="frame" x="20" y="61" width="280" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<point key="canvasLocation" x="127" y="120"/>
</tableViewCell>
新的UITableViewCell(Xcode6)
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="100" id="aI1-wx-nYK">
<rect key="frame" x="0.0" y="0.0" width="320" height="100"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="aI1-wx-nYK" id="dNV-Xk-dVs">
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text 1" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="N8L-oO-ECr">
<rect key="frame" x="8" y="8" width="280" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Text 2" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="IZV-oh-bet">
<rect key="frame" x="8" y="61" width="280" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<point key="canvasLocation" x="511" y="120"/>
</tableViewCell>
如果仔细查看,<rect>
标记后面的第二个XML缺少<tableViewCellContentView>
标记。
<rect key="frame" x="0.0" y="0.0" width="320" height="99"/>
这是一个错误吗?或者我错过了导致这个可怕错误的东西?我在文件检查器上禁用了自动布局和大小类。
答案 0 :(得分:0)
我在Xcode6中遇到了类似的问题。而且,我使用动态细胞,其内容不可见。 我尝试使用和不使用自动布局和类大小。
在故事板中我有下一个:VC&gt;视图&gt; TableView&gt;自定义单元格(带标识符)&gt; ContentView
我创建了一个非常简单的项目 - 它使用TableView加载VC,如下所示:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"DataCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
cell.backgroundColor = [UIColor redColor];
return cell; }
但是我甚至无法改变单元格的背景......它是一团糟......我尝试了其他方式使用标签和标签,创建子类但没有希望。我的所有网点都已连接,所有标识符都设置好了,我猜这个单元格出现在tableview之外,它是由AutoLayout引起的......
目前我有一个解决问题的黑客建议 - 你可以从之前的一个项目导入一个带有适当TableView的故事板。之后,所有自定义工作。 How to import storyboard.
然而,这不是一个好习惯,我希望有人会找到编码解决方案,否则Apple会解决这个问题。