Hello, i have create springborad view like same as iPhone Home screen, like wiggling,icon arrangement. its working fine when application launch potriate view but when i rotate in Landscanview it display perfectly but frame not set perfectly;
may be portrait and landscape frame are different. i have set Row = 6;Column = 5; in potrait mode and Landscape mode i have set Row = 7;Column = 6;
-(void)GridViewIcon {
[gridView.layer removeFromSuperlayer];
arrayIcon = [[NSMutableArray alloc]init];
NSArray *array = [[NSArray alloc] initWithObjects:@"1.png",@"2.png",@"3.png",.. 26 icon,nil];
arrayIcon = [NSMutableArray arrayWithArray:array];
[array release];
IconCount = [arrayIcon count];
k = 0;
gridView = [[UIView alloc]init];
//[gridView setUserInteractionEnabled:NO];
int gridH,gridW;
for (int row = 0; row <Row; ++row)
{
for (int col = 0; col < Column ; ++col)
{
int index = (row * Column) + col;
CGRect frame = CGRectMake(TILE_MARGIN + col * (TILE_MARGIN + TILE_WIDTH), TILE_MARGIN + row * (TILE_MARGIN + TILE_HEIGHT),
TILE_WIDTH, TILE_HEIGHT);
NSString *APPICON = [arrayIcon objectAtIndex:index];
UIImage *aImage = [UIImage imageNamed:APPICON];
WiggleEffect *objWiggle;
tileFrame[index] = frame;
objWiggle = [[WiggleEffect alloc]init];
objWiggle.tileIndex = index;
tileForFrame[index] = objWiggle;
objWiggle.frame = frame;
objWiggle.backgroundColor = [UIColor colorWithPatternImage:aImage].CGColor;
objWiggle.delegate = self;
[gridView.layer addSublayer:objWiggle];
[objWiggle setNeedsDisplay];
[objWiggle release];
k++;
if(k == arrayIcon.count)
{
[self.view addSubview:gridView];
return;
}
gridW = col * (TILE_MARGIN + 90) + 90;
gridH = (row + 1)*(TILE_MARGIN + 90 ) + 90;
}
gridView.frame= CGRectMake(0, 0, gridW, gridH);
gridView.center=self.view.center;
}
[self.view addSubview:gridView];
} and of click frame page will redirect to relative screen. anyone have idea?
Thank you.