Vraag Wanneer gebruikt u UICollectionView in plaats van UITableView?


Ik vond dat UICollectionView is als een bijgewerkte versie van UITableView geïntroduceerd in iOS6, maar wanneer moet ik kiezen UICollectionView in plaats van UITableView?

Er zijn nog steeds apps die gebruiken UITableView, als UICollectionView kan alles doen UITableView kan doen, waarom mensen nog steeds gebruiken UITableView? Is er een verschil wat betreft prestaties?

Bedankt!


76
2018-04-15 08:52


oorsprong


antwoorden:


Dat hangt van de vereisten af. Hoe de applicatie stroomt, bepaalt welk type gebruikersinterface in de applicatie moet worden geïntegreerd.

Mensen gebruiken voornamelijk de UICollectionview voor het maken van typen gebruikersinterfaces met meerdere afbeeldingen in een raster. Dit zou complexe logica gebruiken UITableView, maar met UICollectionview, het zou gemakkelijk zijn.

Tijdens gebruik UICollectionview, u hoeft geen knoppen met tags of andere dingen in te stellen door geselecteerde items te ontvangen. Je kunt het gewoon krijgen -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath en in UITableViewDelegate:

`-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`

U krijgt de geselecteerde rij in plaats van het item, dus voor het maken van raster of gewijzigde items gebruikt u UICollectionview is de beste.

Voor de vermeldingsdetails van elk item die mensen gebruiken UITableView omdat er meer informatie over elk item wordt weergegeven.

Apple Docs:

UICollectionView Class Reference

De UICollectionView-klasse beheert een geordende verzameling gegevensitems en presenteert deze met aanpasbare lay-outs. Collectieweergaven bieden dezelfde algemene functie als tabelweergaven, behalve dat een verzamelingsweergave meer dan alleen layouts met één kolom kan ondersteunen. Collectieweergaven ondersteunen aanpasbare lay-outs die kunnen worden gebruikt om roosters met meerdere kolommen, betegelde lay-outs, circulaire lay-outs en nog veel meer te implementeren. U kunt de lay-out van een verzamelweergave zelfs dynamisch wijzigen als u dat wilt.

UITableView Class Reference

Een tabelweergave toont een lijst met items in een enkele kolom. UITableView is een subklasse van UIScrollView, waarmee gebruikers door de tabel kunnen bladeren, hoewel UITableView alleen verticaal scrollen toestaat. De cellen die de afzonderlijke items van de tabel bevatten, zijn UITableViewCell-objecten; UITableView gebruikt deze objecten om de zichtbare rijen van de tabel te tekenen. Cellen hebben inhoudstitels en afbeeldingen en kunnen, bij de rechterrand, extra weergaven hebben. Standaard accessoire-aanzichten zijn indicatoren voor onthulling of knoppen voor het vrijgeven van details; de eerste leidt naar het volgende niveau in een gegevenshiërarchie en de laatste leidt tot een gedetailleerd overzicht van een geselecteerd item. Accessoire-aanzichten kunnen ook raamwerkbesturingselementen zijn, zoals schakelaars en schuifregelaars, of kunnen aangepaste weergaven zijn. Tabelweergaven kunnen een bewerkingsmodus openen waarin gebruikers rijen van de tabel kunnen invoegen, verwijderen en opnieuw rangschikken.


62
2018-04-15 09:02



Gebruik voor eenvoudige lijsten en voorwaarts / achterwaarts navigeren UITableView.

Als u een hoge mate van aanpasbaarheid nodig heeft, gebruik dan UICollectionView.

Over het algemeen is het bij softwareontwikkeling het beste om de aanpak te kiezen die 'Het eenvoudigste mogelijke ding' vertegenwoordigt.


26
2018-04-15 09:00



Dit zijn mijn criteria:

  • Als een UITableView het kan, gebruik het dan

  • Als een UITableView veel code nodig heeft om het te doen of helemaal niet, gebruik dan UICollectionView.

U moet rekening houden met de beperkingen op UitableView voordat u een beslissing neemt: het is een enkele kolom. En je kunt alleen de cellen aanpassen, maar geen sectieachtergronden en dergelijke. Dus als je een regelrechte lijst hebt met dingen zonder extra franjes - die er in feite uitziet als een vage standaard iOS-weergave - gebruik dan UITableview. Gebruik UICollectionView als u aangepaste inzetgebieden of een rand rond elke sectie hebt.

Ik overweeg eigenlijk UICollectionView voor alle dingen, simpelweg omdat het erg duur is wanneer je begint je zicht te ontwikkelen als een tafelweergave, en later ontdekt dat het niet dat ene ding kan doen dat je het moet doen. 1e hands ervaring;)

Bewerk na nog meer ervaring met de twee: negeer die laatste alinea. UICollectionView vereist veel boilerplate-code om het als een UITableView te laten werken. Gebruik UICollectionView alleen wanneer dat echt nodig is. ;)


24
2017-08-22 11:51



Volgens mijn mening is het grootste verschil tussen collectionView en tableView dat

TABLEVIEW -> lijst met items weergeven in slechts één kolom.

COLLECTION-VIEW -> lijst met items in meerdere kolommen weergeven.

Ik hoop dat het je zal helpen.


10
2018-04-15 16:09



Als je UITableView voor iPhone kiest, zorg dan dat je eerst je iPad-strategie hebt overwogen. Als u een iPad-specifieke lay-out wilt, wilt u misschien dat die lay-out met één kolom een ​​raster wordt.


10
2018-04-07 21:40



Hoewel het niet verplicht is, gebruik ik altijd een collectieoverzicht. Op die manier kan ik gemakkelijk aanpassen hoe mijn collecties worden gepresenteerd voor verschillende resoluties. Een pluspunt is dat het snel nieuwe soorten cellen kan toevoegen bij toekomstige refactoring.

Ik zie geen punt van tableviews. Het is heel eenvoudig om een ​​verzamelweergave te gebruiken om een ​​tabel weer te geven. IMO.


5
2017-12-13 22:17



Beide zijn afhankelijk van de vereisten. Tabelweergaven hebben ook ondersteuning voor verschillende bewerkingsscenario's. Deze ondersteuning is niet geïmplementeerd in de klassen Collectieweergave. Als u vanuit een tabelweergave converteert die op deze methoden vertrouwt, verwacht dan een beetje extra zwaar tillen in de verzamelweergave. De kopteksten van Collectieweergave kunnen overal in de weergave worden geplaatst. en UITableView hoeven geen knoppen met tags of andere dingen in te stellen door geselecteerde items te krijgen.


2
2018-06-18 05:31



Het is volledig afhankelijk van hoe uw gegevens worden getoond. Zoals door velen hierboven genoemd, als je slechts één set gegevens nodig hebt en dat ook niet complex, ga dan voor UITableView anders gebruiken UICollectionView.

UICollectionView is maatwerk vriendelijk.

Als je te maken hebt met meerdere celhoogtes of zo, ga dan voor UICollectionView.


1
2018-04-03 06:51



Uit mijn persoonlijke ervaring moeten de twee elementen alleen losjes worden vergeleken.

TableView

Een TableView is een UI-element dat is ontworpen voor het weergeven van gegevens in een lijstindeling. Er is bepaalde functionaliteit die standaard wordt geleverd met een UITableView, zoals:

  • Accessoire weergave
  • Celselectiestijl
  • Bewerkingsstijl (knoppen verwijderen en bewerken).

De bovenstaande elementen verbeteren de bruikbaarheid van gegevens bij het weergeven en interacteren in een lijstindeling. Zoals het bekijken van e-mails.

CollectionView

Een CollectionView is een UI-element dat is ontworpen om inhoud weer te geven met behulp van een aangepaste lay-out (meestal alles dat geen lijst is). CollectionViews verbeteren de functionaliteit van het weergeven van gegevens in volledig op maat gemaakte lay-outstijlen en ook dynamisch veranderende lay-outs tijdens de vlucht. Enkele voorbeelden zijn:

  • Horizonal-lijsten
  • Fotogalerijen
  • Miniatuurweergaven
  • carrousels
  • Dials
  • Elementen op een kaart plaatsen
  • enz.

CollectionViews bieden ook meerdere selecties.

Conclusie

Zoals u aan het bovenstaande kunt zien, hebben beide een compleet andere gebruikssituatie en zijn ze ontworpen voor het verbeteren van de ontwikkeling en bruikbaarheid van hun eigen specifieke gegevenssets.

Als u iets in een lijststijl wilt weergeven met de volgende interacties: - Toevoegen - Verwijderen - Nabestellen Dan zal een UITableView dit proces vereenvoudigen door de ondersteuning direct uit de doos te leveren.

Nog iets anders, u moet gebruikmaken van de voordelen van CollectionView omdat u meer flexibiliteit heeft.


1
2018-01-07 20:08



Op basis van onze behoefte kiezen we voor TableView of CollectionView.

Voorbeeld:

Voor tabel met telefooncontacten Beeld is de beste optie.

Voor fotogalerij is de verzamelweergave de beste optie.


0
2018-04-15 09:01