Table cells 'on top' laden...

Table cells 'on top' laden... discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Het was alweer eventjes geleden dat ik met de SDK bezig was, maar onlangs alles weer even opgepakt om wat projecten weer nieuw leven in ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen
  #1  
Oud 20 July 2009, 00:37
» iPhone 3G 8GB [FW: 3.0]  [Jailbreak: Nee]
» MacOS X
 
Geregistreerd: 19 March 2008
Berichten: 53
Standaard Table cells 'on top' laden...

Het was alweer eventjes geleden dat ik met de SDK bezig was, maar onlangs alles weer even opgepakt om wat projecten weer nieuw leven in te blazen.

Nou zie je in veel twitter clients, dat ze met een timer telkens nieuwe berichten ophalen, en als deze er dan zijn worden ze bovenaan de tablelist toegevoegd. ( nee ik ben niet de zoveelste twitter client aan het maken )

Nou vraag ik me dus af, hoe zorg ik ervoor dat de table cells die ik maak bovenop toegevoegd worden ipv onderaan.??

Iemand een idee?
__________________
iPhone 2G 16GB @3.0 | t-Mobile iPhone 3G 8GB @3.0
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 20 July 2009, 02:30
» iPhone 3GS 32GB (Zwart) [FW: 5.0 Beta]  [Jailbreak: Nee]
» iPad 1 Wi-Fi 16GB [FW: 5.0 Beta]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 21 August 2008
Locatie: Antwerpen
Berichten: 89
Standaard

Is dat niet gewoon met insertRowsAtIndexPaths:withRowAnimation: en daarbij een indexPath meegeven met een row=0?
  #3  
Oud 20 July 2009, 18:22
» iPhone 6 64GB (Space Grijs) [FW: 8.0]  [Jailbreak: Nee]
» iPad 4 Wi-Fi 32GB (Zwart) [FW: 8.0]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 12 March 2008
Locatie: Omgeving Nijmegen
Berichten: 94
Standaard

Bij het weergeven van een tablelist kan je de data uit willekeurige bronnen halen. Als je b.v de nieuwe items aan het begin van je array toevoegd en die array gebruikt om je tablelist weer te geven al de list ook zo eruit zien als de array die je gebruikt.
  #4  
Oud 22 July 2009, 19:49
» iPhone 3G 8GB [FW: 3.0]  [Jailbreak: Nee]
» MacOS X
 
Geregistreerd: 19 March 2008
Berichten: 53
Standaard

Ik heb nog niet helemaal voorelkaar wat ik wil.

Ik heb nu een timer die om de 30 secondes een API call doet naar m'n server en daar een NSDictionary van terug krijgt.
Dit voeg ik toe aan een NSArray, die dus steeds groter wordt, en deze NSArray wordt ook gebruikt om de table te vullen. Na het bijvoegen in de NSArray roep ik de tableView reloadData aan, en de tableView wordt ververst/nieuwe cellen komen onderin.

Ik zit er dus mee dat de volgorde totaal niet klopt, want hij zet de nieuwe records telkens onderin erbij. Doe ik een reverseObjectEnumerator op de data die ik terug krijg om de volgorde om te keren dan klopt er ook niks van omdat de nieuwe results dan ene keer onderop , daarna weer bovenop toegevoegd worden.

Bestaat er niet een methode om gewoon een losse cell zo pats, bovenin de table te plaatsen?
Want met reloadData wordt het natuurlijk op een gegeven moment reeete traag als je em maar blijft vullen.
  #5  
Oud 22 July 2009, 21:16
» iPhone 3GS 32GB (Zwart) [FW: 5.0 Beta]  [Jailbreak: Nee]
» iPad 1 Wi-Fi 16GB [FW: 5.0 Beta]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 21 August 2008
Locatie: Antwerpen
Berichten: 89
Standaard

Citaat:
Oorspronkelijk geplaatst door Graaf Bekijk bericht
Bestaat er niet een methode om gewoon een losse cell zo pats, bovenin de table te plaatsen?
insertRowsAtIndexPaths:withRowAnimation:
  #6  
Oud 22 July 2009, 21:33
» iPhone 3G 8GB [FW: 3.0]  [Jailbreak: Nee]
» MacOS X
 
Geregistreerd: 19 March 2008
Berichten: 53
Standaard

Citaat:
Oorspronkelijk geplaatst door Matisse Bekijk bericht
insertRowsAtIndexPaths:withRowAnimation:
Hier ben ik inmiddels ook al eventjes mee aan het stoeien, maar heb het nog niet werkend..

dit is wat ik doe, _messagesList is een NSMutableDictionary
Code:
NSDictionary *messages = [result objectForKey:@"results"];
for (NSDictionary *message in messages) {
  [_messagesList addObject: message];
  [[self tableView] insertRowsAtIndexPaths:[NSDictionary dictionaryWithObjects:[NSIndexPath indexPathForRow:[_messagesList count]-1 inSection:0]]];
}
dit is wat ik krijg: *** -[NSCFDictionary addObject:]: unrecognized selector sent to instance 0xd21dd0
  #7  
Oud 22 July 2009, 21:48
danielpunt's schermafbeelding
» iPhone 3G 16GB (Wit) [FW: 4.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 19 December 2007
Locatie: Vlaardingen
Berichten: 87
Standaard

weet je zeker dat de _messagesList geen NSCFDictionary is? Of in iedergeval niet nil is?
  #8  
Oud 22 July 2009, 21:52
» iPhone 3G 8GB [FW: 3.0]  [Jailbreak: Nee]
» MacOS X
 
Geregistreerd: 19 March 2008
Berichten: 53
Standaard

Citaat:
Oorspronkelijk geplaatst door danielpunt Bekijk bericht
weet je zeker dat de _messagesList geen NSCFDictionary is? Of in iedergeval niet nil is?
yes. _messagesList is zekerweten een NSMutableDictionary, en hij is niet nil.
  #9  
Oud 22 July 2009, 22:16
» iPhone 3G 8GB [FW: 3.0]  [Jailbreak: Nee]
» MacOS X
 
Geregistreerd: 19 March 2008
Berichten: 53
Standaard

_messagesList heb ik nu een NSMutableArray van gemaakt, omdat NSMutableDictionary volgens mij niet helemaal goed werkte met addObject e.d.

Code:
        _messagesList = [result objectForKey:@"results"];
        NSMutableArray *insertIndexPaths = [[NSMutableArray alloc] init];
        for (NSUInteger i = 1; i <= [_messagesList count]; ++i) {
            [insertIndexPaths addObject:[NSIndexPath indexPathForRow:(i-1) inSection: 0]];
        }
        
        [self.tableView beginUpdates];
        [self.tableView insertRowsAtIndexPaths:insertIndexPaths    withRowAnimation: UITableViewRowAnimationRight];
        [self.tableView endUpdates];
        [insertIndexPaths release];
Dit geeft nu alleen:

'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (20) must be equal to the number of rows contained in that section before the update (20), plus or minus the number of rows inserted or deleted from that section (20 inserted, 0 deleted).'

Ik snap er werkelijk waar niks meer van.
Ik neem letterlijk methodes over uit examples / stukken source uit andere apps, maar krijg het niet werkend.

Laatst gewijzigd door Graaf; 22 July 2009 om 23:08.
  #10  
Oud 24 July 2009, 12:40
» iPhone 5s 16GB (Goud) [FW: 7.1.2]  [Jailbreak: Nee]
» iPad 1 Wi-Fi 16GB [FW: 5.1.1]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 12 January 2009
Berichten: 484
Standaard

Zo te zien voert ie bij het toevoegen een [tableview reloadData] uit ofzo. Hij roept dan opnieuw je

Code:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
method aan.

Waarschijnlijk geeft deze nog je oude waarde terug (het aantal rows voor het toevoegen). Deze moet je dus ook even ophogen (tellertje bijhouden ofzo?).


EDIT: typefoutjes
__________________
Software Engineer
iPhone Developer
  #11  
Oud 24 July 2009, 14:31
» iPhone 3GS 32GB (Zwart) [FW: 5.0 Beta]  [Jailbreak: Nee]
» iPad 1 Wi-Fi 16GB [FW: 5.0 Beta]  [Jailbreak: Nee]
» Mac OS X
 
Geregistreerd: 21 August 2008
Locatie: Antwerpen
Berichten: 89
Standaard

Ik heb even snel een voorbeeldappje gemaakt, mss kan je dat helpen...
Bijgevoegde bestanden
Bestandstype: zip TableAdd.zip‎ (18,7 KB, 4x gelezen)
  #12  
Oud 24 July 2009, 15:24
» iPhone 5 32GB (Zwart) [FW: 6.0.1]  [Jailbreak: Nee]
» iPad 3 Wi-Fi 32GB (Zwart) [FW: 6.0.1]  [Jailbreak: Nee]
» Windows
 
Geregistreerd: 6 June 2009
Berichten: 1.061
Standaard

Sorry, beetje offtopic:
Ik kan zelf PHP en het is best wel grappig om te zien wat jullie maken. Het gekke is, ik snap wel wat er gebeurd enzo en wat je doet maar als ik het zelf moest maken had ik geen idee waar te beginnen.
  #13  
Oud 24 July 2009, 22:28
» iPhone 3G 8GB [FW: 3.0]  [Jailbreak: Nee]
» MacOS X
 
Geregistreerd: 19 March 2008
Berichten: 53
Standaard

Het is allemaal gelukt uiteindelijk. Thanx guys.
Ben met paar dingen maar even opnieuw begonnen, de afgelopen nacht doorgewerkt tot vanmorgen uurtje of 10 en het prototype van m'n nieuwe app is klaar

Het probleem lag denk ik uiteindelijk met het doorgelkaar halen van NSMutableDictionary en NSMutableArray schat ik zo...
Reageren


Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
Table Connect for the iPhone vmaxbeast iPhone algemeen 1 5 November 2010 23:10
NSTimer in Table View Tim14ww Ontwikkelen voor iOS 3 17 October 2009 13:11
Windows: Geen top free en top paid apps meer McNessie iTunes 4 21 October 2008 09:40

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 21:37.