12
votes

Xcode 6 Ajout de la table de table dans ib

dans xcode 5, j'ai pu glisser un uiview dans un utableview dans ib pour créer l'en-tête. Cependant, dans Xcode 6, IB ne me laissera pas laisser tomber un à l'intérieur. N'y a-t-il aucun moyen de créer l'en-tête de la table dans IB plus?


1 commentaires

Yeah Xcode 6 suce, mais après 6-7 tentatives, j'ai pu y arriver.


4 Réponses :


37
votes

Vous venez de faire glisser un uiview en haut de la table (au-dessus du texte "Prototype des cellules") et de le tenir là. L'indicateur de chute passe à une seule ligne horizontale avec un petit cercle à chaque extrémité. Lorsque vous le déposez, cela fait un en-tête.

Vous pouvez faire semblable au fond pour faire un pied de page.

Pour un contrôleur de vue de table dans un storyboard:

Entrez la description de l'image ici

Pour une vue de table dans un XIB:

Entrez la description de l'image ici


9 commentaires

C'est plus délicieux avec Xcode 6 qu'auparavant. M'a pris 10 minutes et d'innombrables essais pour y parvenir


Sérieusement? Je le tiens sur la table et je ne me laisse jamais tomber à l'intérieur. J'ai compris un piratage qui a travaillé pour moi, affiché comme réponse ci-dessous


Vous devez le tenir au-dessus du texte "Cellules prototypes". L'indicateur de chute passe à une ligne bleue avec des cercles à gauche et à droite de la table. Je vais essayer d'obtenir un enregistrement à l'écran.


YA Peut-être qu'une capture d'écran peut aider. Je ne vois pas de vision de "cellules prototypes" n'importe où dans IB ou ailleurs, je peux déposer un UIView au-dessus de


Êtes-vous dans un storyboard ou un XIB?


Enregistrements d'écran ajoutés, pour les deux options


J'utilise une nib. J'essayais de le laisser tomber en place à l'intérieur du plan de document comme je l'ai fait dans Xcode 5, mais je suppose que cela ne fonctionne plus. C'est beaucoup plus difficile à travailler, je suis content d'avoir eu un en-tête déjà configuré dans Xcode 5 que j'ai pu copier / coller dans mes nouvelles Nibs.


Je ne peux toujours pas obtenir cela pour travailler. J'ai fini par modifier manuellement le XML du XIB afin de tomber dans un pied de page (je n'en ai pas précédemment un dans un XIB différent de copier). Je fais exactement la même chose que tu es mais ça ne marche toujours pas :(


Je pense que la vue de table doit être une vue de haut niveau. Je ne pouvais pas obtenir cela pour travailler lorsqu'il est intégré dans la vue du conteneur.



-1
votes

Qu'est-ce que j'ai fini par faire (qui a fonctionné génial) était de copier un existant existant avec un en-tête d'un autre NIB i eu déjà configuré avec xcode 5. Puis j'ai simplement supprimé tout le reste de cette table Sauf l'en-tête juste pour que je puisse l'obtenir correctement. Cependant, cet astuce ne fonctionnera que si vous avez configuré une table avec un en-tête de Xcode 5 auparavant. Si vous travaillez avec un nouveau projet Xcode 6, je n'ai toujours pas de solution.


0 commentaires

5
votes

Cliquez avec le bouton droit de la souris sur le fichier XIB et sélectionnez 'Ouvrir sous', sélectionnez Code source

Recherchez l'élément XML de la TableView et remplacez par le suivant P>

  <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="YCz-1P-cVv">
                <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                <view key="tableHeaderView" contentMode="scaleToFill" id="vv3-pk-N2N">
                    <rect key="frame" x="0.0" y="0.0" width="320" height="156"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <subviews>
                        <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="yho-bJ-IzF">
                            <rect key="frame" x="0.0" y="25" width="320" height="44"/>
                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        </imageView>
                    </subviews>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                </view>
            </tableView>


1 commentaires

Yup c'est ce que j'ai fini par faire. Modification manuelle Le XML était le seul moyen que je puisse ajouter une en-tête ou un pied de page dans ma table sans copier d'une table existante.



2
votes

Je pense que vous devriez ajouter une en-tête de table et une vue de pied de page par code source. D'abord Faites un clic droit sur IB et ouvrez comme code source, puis placez le code ci-dessous

<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="MZF-la-Fpw">
                <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                <view key="tableHeaderView" contentMode="scaleToFill" id="IDM-OR-d2g">
                    <rect key="frame" x="0.0" y="0.0" width="320" height="40"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                </view>
                <view key="tableFooterView" contentMode="scaleToFill" id="Q4z-o4-2rB">
                    <rect key="frame" x="0.0" y="518" width="320" height="50"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                </view>
                <connections>
                    <outlet property="dataSource" destination="-1" id="guW-ch-dgt"/>
                    <outlet property="delegate" destination="-1" id="j1u-5q-dsq"/>
                </connections>
            </tableView>


0 commentaires