说,我有一个UIImageView
或任何对象,我将其设置为UIView
作为subView,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屏幕上,它以相同的比例位置显示。但是从右边缘算起它的位置。
非常感谢先进。
答案 0 :(得分:2)
我建议不要硬编码确切的位置,而是计算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];
答案 1 :(得分:0)
好吧,由于ImageView的宽度为30,x坐标距左侧为266,因此从右侧296开始x坐标。