UITableView CellforRowAtIndexPathで作成したUIImageView、UILabelがあります。cell.contentviewに追加した各セルにすべてが必要なので。しかし、現在、ランドスケープの向きを処理する際に問題に直面しています。画像とラベルを CellforRowAtIndexPath に配置したため、横向きでも回転しているときに同じ位置(縦向き)になります。私のコード、
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
imgView1 = [[UIImageView alloc] initWithFrame:CGRectMake(680, 60, 40, 40)];
[imgView1 setImage:[UIImage imageNamed:@"Downloaded.png"]];
if([[[appDelegate selectDB] valueForKey:@"bookname"] containsObject:[listOfBooks objectAtIndex:indexPath.row]] )
{
[cell.contentView addSubview:imgView1];
}
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[self handleInterfaceRotationForOrientation:toInterfaceOrientation];
if (toInterfaceOrientation==UIInterfaceOrientationLandscapeRight)
{
imgView1.frame = CGRectMake(890,0, 40, 40);
}
else if (toInterfaceOrientation==UIInterfaceOrientationLandscapeLeft)
{
imgView1.frame = CGRectMake(890,0, 40, 40);
}
else if (toInterfaceOrientation==UIInterfaceOrientationPortrait)
{
imgView1.frame = CGRectMake(690, 60, 40, 40);
}
else
{
imgView1.frame = CGRectMake(690, 60, 40, 40);
}
}
また、私はこれを試しました、
UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];
if(orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown)
{
imgView = [[UIImageView alloc] initWithFrame:CGRectMake(150,20,125,163)];
imgView1 = [[UIImageView alloc] initWithFrame:CGRectMake(680, 60, 40, 40)];//self.view.bounds.size.width-
[imgView1 setImage:[UIImage imageNamed:@"Downloaded.png"]];
Label = [[UILabel alloc] initWithFrame:CGRectMake(300, 60, 370, 28)];
subtitleLabel=[[UILabel alloc]initWithFrame:CGRectMake(300,88 , 200, 23)];
subtitleLabel1=[[UILabel alloc]initWithFrame:CGRectMake(395,88 , 200, 23)];
}
else
{
imgView = [[UIImageView alloc] initWithFrame:CGRectMake(230,50,125,163)];
imgView1 = [[UIImageView alloc] initWithFrame:CGRectMake(930, 60, 40, 40)];
[imgView1 setImage:[UIImage imageNamed:@"Downloaded.png"]];
Label = [[UILabel alloc] initWithFrame:CGRectMake(420, 60, 370, 28)];
subtitleLabel=[[UILabel alloc]initWithFrame:CGRectMake(420,88 , 200, 23)];
subtitleLabel1=[[UILabel alloc]initWithFrame:CGRectMake(515,88 , 200, 23)];
}
上記の方法を使用しようとすると、縦向きでも横向きの位置しか得られません。ここで何が間違っていますか?誰かが私を助けることができますか?よろしくお願いします。