网格显示在UITableViewCell的前面

时间:2017-02-02 10:48:31

标签: ios iphone uitableview swift3 xcode8

我有一个奇怪的问题:

Screenshot

我将UITableview分隔符设置为粉红色。如您所见,我的单元格的中间和末尾显示了一些线条,但有一个偏移量。滚动时它不会移动,因此我称之为在我的单元格前面显示的网格。 我在这里遇到的一个大问题是,它只能在iPhone7模拟器(IOS 10)上显示,而且显示更少(7s不显示此网格)。

你们有没有想过为什么以及如何解决这个问题?

如果您需要一些代码,请告诉我,我会编辑我的帖子。

谢谢!

这是xib:

<!--Articles-->
        <scene sceneID="j0Y-qF-3lq">
            <objects>
                <viewController id="6B8-Tk-xPz" userLabel="Articles" customClass="HeadController" customModule="E_R" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="H0o-ZU-FUz"/>
                        <viewControllerLayoutGuide type="bottom" id="DVT-NA-hNg"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Qib-nc-8lK" customClass="UITableView">
                        <rect key="frame" x="0.0" y="64" width="375" height="554"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <tableView clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="90" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="oLy-kw-Uc2">
                                <rect key="frame" x="0.0" y="0.0" width="375" height="554"/>
                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                <color key="separatorColor" red="1" green="0.0" blue="0.95666110710516339" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <prototypes>
                                    <tableViewCell opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="ArticleTableViewCell" rowHeight="90" id="owe-aQ-qV4" customClass="ArticleTableViewCell" customModule="E_R">
                                        <rect key="frame" x="0.0" y="28" width="375" height="90"/>
                                        <autoresizingMask key="autoresizingMask"/>
                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="owe-aQ-qV4" id="k3G-5w-mGo">
                                            <rect key="frame" x="0.0" y="0.0" width="375" height="89"/>
                                            <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                                            <subviews>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Label" lineBreakMode="wordWrap" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VV9-uR-YRk">
                                                    <rect key="frame" x="7" y="0.0" width="271" height="54"/>
                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                    <fontDescription key="fontDescription" name=".SFNSText" family=".SF NS Text" pointSize="13"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Label" lineBreakMode="wordWrap" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="T9Y-oH-4IA">
                                                    <rect key="frame" x="7" y="57" width="268" height="34"/>
                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
                                                    <fontDescription key="fontDescription" name=".SFNSText" family=".SF NS Text" pointSize="11"/>
                                                    <nil key="highlightedColor"/>
                                                </label>
                                                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Z8M-gG-zVc">
                                                    <rect key="frame" x="283" y="0.0" width="88" height="88"/>
                                                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" heightSizable="YES"/>
                                                </imageView>
                                            </subviews>
                                        </tableViewCellContentView>
                                        <accessibility key="accessibilityConfiguration" identifier="ArticleTableViewCell">
                                            <bool key="isElement" value="NO"/>
                                        </accessibility>
                                        <gestureRecognizers/>
                                        <connections>
                                            <outlet property="previewImage" destination="Z8M-gG-zVc" id="J2R-HU-hYb"/>
                                            <outlet property="subTitleLabel" destination="T9Y-oH-4IA" id="RuM-IV-kza"/>
                                            <outlet property="titleLabel" destination="VV9-uR-YRk" id="9v5-6F-3lA"/>
                                            <segue destination="BTc-SH-fsG" kind="show" identifier="ShowDetail" id="SZH-pm-QeE"/>
                                        </connections>
                                    </tableViewCell>
                                </prototypes>
                            </tableView>
                        </subviews>
                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                    </view>
                    <extendedEdge key="edgesForExtendedLayout"/>
                    <navigationItem key="navigationItem" id="mnh-mw-Uiz">
                        <segmentedControl key="titleView" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="fill" contentVerticalAlignment="fill" segmentControlStyle="bar" selectedSegmentIndex="0" id="ghy-sl-9Yp">
                            <rect key="frame" x="92" y="7" width="191" height="30"/>
                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                            <segments>
                                <segment title="A la une"/>
                                <segment title="Tous"/>
                            </segments>
                            <connections>
                                <action selector="SwitchList:" destination="6B8-Tk-xPz" eventType="valueChanged" id="a4M-GY-kSb"/>
                            </connections>
                        </segmentedControl>
                    </navigationItem>
                    <connections>
                        <outlet property="ArticlesList" destination="oLy-kw-Uc2" id="qXj-r7-lJg"/>
                        <outlet property="SegmentedArticles" destination="ghy-sl-9Yp" id="oTe-Vh-Kns"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="l57-G8-yDO" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="237.59999999999999" y="425.93703148425789"/>
        </scene>

图像单元原型:

Image cell prototype

2 个答案:

答案 0 :(得分:0)

我认为你的表View rowHeight是laoding的默认表。 在viewDidLoad方法中尝试此代码:

override func viewDidLoad() {
    tableView.estimatedRowHeight = 150.0
    tableView.rowHeight = UITableViewAutomaticDimension
    tableView.tableFooterView = UIView()
}

同样隐藏tableView的默认分隔符(如果已将其添加为自定义行,则不需要)

Like this

希望它能解决这个问题。

<强>更新

如果你不知道如何添加布局constarints并且你的tableView只有一种类型的单元格,那么你也可以在storyboard中设置rowHeight。在viewController中选择tableView并转到属性检查器

添加屏幕截图:

在此处设置所需的 rowHeight 。它可能会解决您的问题。

Row height

答案 1 :(得分:0)

好的,我有答案。非常简单 !我有一个TableViewController,它包含一个TableView。问题是我在TableViewController中包含了另一个TableView!这就是为什么我在第二个TableView前面有我的那种“网格”。