je veux afficher de nombreuses images comme des vignettes dans une vue défilante et et je veux que les images affichées dynamiquement nous défiler vers le bas ou à gauche comme une cellule vue cellulescomment charger les images dans ma vue de manière dynamique dans une vue déroulante dans l'iPhone
peut u s'il vous plaît dire comment ça ...
Merci
avec le code..when suivant nous faire défiler la vue de défilement im appelant ce code et capable d'afficher les images dynamiquement (qui r uniquement visible) mais le problème est .. tout en faisant défiler avec les barres de défilement im obtenant les deux images ..vertically et horizontalement .. son seulement se produit quand je défiler .. tout corps peut-il m'aider s'il vous plaît ..?
int tileSize;
int imgSize;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
tileSize = 255;
imgSize = 247;
}else{
tileSize = 120;
imgSize = 116;
}
CGRect visibleBounds = [songsContainer bounds];
for (UIView *tile in [songsContainer subviews]) {
CGRect scaledTileFrame =[tile frame];
if (! CGRectIntersectsRect(scaledTileFrame, visibleBounds)) {
for(UIView *view in [tile subviews])
[view removeFromSuperview];
[recycledCells addObject:tile];
[tile removeFromSuperview];
}
}
int maxRow =[songsDict count]-1; // this is the maximum possible row
int maxCol = noOfRowsInCell-1; // and the maximum possible column
int firstNeededRow = MAX(0, floorf(visibleBounds.origin.y/tileSize));
int firstNeededCol = MAX(0, floorf(visibleBounds.origin.x/tileSize));
int lastNeededRow = MIN(maxRow, floorf(CGRectGetMaxY(visibleBounds)/tileSize));
int lastNeededCol = MIN(maxCol, floorf(CGRectGetMaxX(visibleBounds)/tileSize));
NSLog(@".........MaxRow-%d,MaxCol-%d,firstNeddedRow-%d,firstNeededcol-%d,lNR-%d,lNC%d",maxRow, maxCol, firstNeededRow,firstNeededCol,lastNeededRow,lastNeededCol);
// iterate through needed rows and columns, adding any tiles that are missing
for (int row = firstNeededRow; row <= lastNeededRow; row++) {
NSMutableArray *tempArray = (NSMutableArray *)[songsDict objectAtIndex:row];
for (int col = firstNeededCol; col <= lastNeededCol ; col++) {
BOOL tileIsMissing = (firstVisibleRow > row || firstVisibleColumn > col ||
lastVisibleRow < row || lastVisibleColumn < col);
if (tileIsMissing) {
UIView *tile = (UIView *)[self dequeueReusableTile];
if (!tile) {
// the scroll view will handle setting the tile's frame, so we don't have to worry about it
tile = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
tile.backgroundColor = [UIColor clearColor];
}
//tile.image = image for row and col;
// set the tile's frame so we insert it at the correct position
CGRect frame = CGRectMake(tileSize * col, tileSize * row, imgSize, imgSize);
tile.frame = frame;
if(col<[tempArray count])
[self addContentForTile:tile:row:col];
else tile.backgroundColor = [UIColor clearColor];
[songsContainer addSubview:tile];
}
}
}
firstVisibleRow = firstNeededRow+1; firstVisibleColumn = firstNeededCol+1;
lastVisibleRow = lastNeededRow; lastVisibleColumn = lastNeededCol;
Merci Jer, je vais essayer et laissez-vous savoir .. merci encore:] – rockey
mais l'application ipad WindowShop de l'application Amazon peut être défilable verticalement et horizontalement ... ils se chargent dynamiquement à droite? – rockey
Vous n'avez pas besoin de verrouiller l'un ou l'autre des axes, juste en général, dans les vignettes, on verrouille l'axe horizontal ou vertical dans le scrollview. Ce que j'ai dit s'applique toujours si vous ne voulez pas verrouiller l'un ou l'autre axe. – jer