比方说,我有一个UIImageView
或任何对象,我在UIView
中将其设置为CGRectMake
的子视图,如下所示:
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30)];
UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(266, 0, 30, 30)];
[imgView setImage:[UIImage imageNamed:[self.imageDicKey objectAtIndex:section]]];
[headerView addSubview:imgView];
在这里,我设置了我的imgView
的位置,就像CGRectMake(266, 0, 30, 30)];
一样,它从左x position
计算它的位置(即266)。如果我想从屏幕右侧设置imgView
的位置,该怎么办?所以,在不同宽度的iPhone屏幕上,它显示在相同的比例位置。但哪一个会被计算在内,它的位置从右边开始。提前非常感谢。
我建议不要对确切的位置进行硬编码,而是计算x和y。这样,它将有助于不同大小的屏幕,因此它不是一个确切的位置,而是基于视图的大小。
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30)];
CGFloat padding = 20; // amount for padding
CGSize size = CGSizeMake(30, 30); // size of imageView
CGPoint startPos = CGPointMake(headerView.frame.size.width - padding - size.width, 0); // starting position for imageView
UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(startPos.x, startPos.y, size.width, size.height)]; [imgView setImage:[UIImage imageNamed:[self.imageDicKey objectAtIndex:section]]]; [headerView addSubview:imgView];
好吧,因为ImageView的宽度是30,x坐标从左侧算起是266,所以它使x坐标从右侧算起是296。