从iOS屏幕的右边缘将UIView设置在固定的比例位置



比方说,我有一个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。

最新更新