我有 UIImageView,我在 UITableView CellforRowAtIndexPath 中创建的 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)];
}
当我尝试使用上述方法时,即使是纵向,我也只能获得横向位置。这里做错了什么?有人能帮我吗?提前非常感谢。