Nachladen Sammlung anzeigen
Ich Schreibe eine app in Objective C. ich habe benutzerdefinierte Zelle in Sammlungen-Ansicht. Zunächst lädt er die Daten aus der SQLite-Db und zeigt Sie in der Ansicht Sammlung innerhalb jedes benutzerdefinierte Zelle. Und es zeigt Zellen, die auf Auflistung anzeigen.
Sobald ich neu laden Ansicht Sammlung der Ansicht Sammlung bleibt in der Farbe schwarz.
Code:
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 3;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return [self readRowCount:@"SELECT COUNT(label) FROM colour;"];
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"%d", [arrColour count]);
CustomViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ItemCell" forIndexPath:indexPath];
// if (cell == nil) {
// cell = [[CustomViewCell alloc]init];
//}
cell.label.text = [NSString stringWithFormat:@"%@",[ [arrColour objectAtIndex:indexPath.item ]label] ];
CellData *redObj = [arrColour objectAtIndex:indexPath.row];
CellData *greenObj = [arrColour objectAtIndex:indexPath.row];
CellData *blueObj = [arrColour objectAtIndex:indexPath.row];
float redF = [[redObj red] floatValue];
float greenF = [[greenObj green] floatValue];
float blueF = [[blueObj blue] floatValue];
//NSLog(@"Colours: %f-%f-%f", redF, greenF, blueF);
cell.backgroundColor = [UIColor colorWithRed:redF/255.0f green:greenF/255.0f blue:blueF/255.0f alpha:1];
return cell;
}
Den Ort, den ich neu laden von Daten - die Taste:
- (IBAction)btnAdd:(id)sender {
NSString *myRed = [NSString stringWithFormat: @"%1.4f", slideR.value];
NSString *myGreen = [NSString stringWithFormat: @"%1.4f", slideG.value];
NSString *myBlue = [NSString stringWithFormat: @"%1.4f", slideB.value];
if(txtField != nil){
[colMain reloadData];
}
Den arrColour (Mutable-Array) in dieser situation enthält die gleiche Menge von Elementen. Was bedeutet der collection view wurde nicht neu geladen?
InformationsquelleAutor uml | 2013-02-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einen guten Grund, Sie verwenden Sqlite, sondern direkt mit Core Data, die schön abstrahiert die meisten der low-level-Ausdauer Komplexität Weg?
Sowieso, wenn es sein muss, hier ist, wie könnte man es denn mit deinem aktuellen Ansatz:
NSArray*
Eigenschaft oder eine Instanz-variable. Initialisieren und füllen des Arrays in-viewDidLoad
(oder später).datasource
Implementierungen zu verwenden, array, z.B.return [self.colors]
imnumberOfItemsInSection
datasource
Methode.-reloadData
auf der Ansicht Sammlung.Einige andere Tipps:
- Sind Sie sicher, dass Sie wirklich wollen, haben die 3 Abschnitte ("Gruppen" von items) in der Ansicht Sammlung? Wenn Sie nicht, entfernen Sie einfach Ihre
-numberOfSectionsInCollectionView
Umsetzung insgesamt.- Sie sind immer die gleichen Objekte drei mal, wenn Sie
arrColors[indexPath.item
. Dies ist sicherlich nicht Ihre Absicht? Erwägen Sie die VerwendungUIColor
als Elemente des Arrays, oder wickeln Sie den Farbe Wert in ein benutzerdefiniertesNSObject
Unterklasse.Hoffe, das gibt Ihnen einige Hinweise, wie, um loszulegen.
InformationsquelleAutor Yang Meyer
In der Tat, was ich zu tun ist, um die Eigenschaften für mein benutzerdefiniertes Objekt 'starke'. Das ist waren, die ich zum speichern von Werten für die RGB-Farben in einem benutzerdefinierten Objekt.
InformationsquelleAutor uml