iOS - 如何定位固定在背景图像上特定区域内的视图
iOS - How To Position a View Fixed Within a Certain Area On a Background Image
这是我想要实现的布局。
我想在任何 iPhone 中将圆形黄色按钮放置在背景的小圆形区域内。圆形区域不在该图像的中心。
到目前为止,这是我尝试过的:
- 首先,我在整个布局的中心添加了一个1px x 1px、透明背景色的UIView。我称之为中心点
- 然后我将设置中心点和黄色按钮之间的垂直间距。
- 我还将在黄色按钮和超级视图之间设置前导约束。
- 然后,我将设置纵横比(黄色按钮宽度与黄色按钮高度)。
- 另一种纵横比(黄色按钮与背景图片)。
然而,结果真的不是我想的那样。没关系,如果背景图像失真,我只希望黄色按钮留在背景图像的圆形区域内。
谢谢!
我不会走那么远,我会制作一个适合整个屏幕的按钮,将按钮图像设置为包括黄色圆圈在内的整个图像。然后使用下面类似的代码:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
// Get the specific point that was touched
CGPoint point = [touch locationInView:self.view];
if (point.x * 100 / parentView.width in range (0-100) && point.y*100 / parentView.heiht in range (0-100)){
// write your button event handler here.
}
}
要相对于背景定位您的圆圈,请设置约束以将圆圈的后缘与图像视图的后缘对齐,然后将乘数设置为适当的值,例如 214:640
。这将导致圆圈随着屏幕尺寸的增加而向右移动正确的量。
同样,将圆圈底部与图像视图底部对齐,并将乘数设置为适当的值,例如 478:900
,它会随着屏幕的增大使圆圈保持对齐。
调整比率,直到它们在一种 phone 尺寸(如 iPhone 5S)上看起来不错,然后它们将适用于 6S 和 6S Plus。
将圆宽度设置为图像视图宽度,并将乘数设置为 100:320
。
这是我想要实现的布局。
我想在任何 iPhone 中将圆形黄色按钮放置在背景的小圆形区域内。圆形区域不在该图像的中心。
到目前为止,这是我尝试过的:
- 首先,我在整个布局的中心添加了一个1px x 1px、透明背景色的UIView。我称之为中心点
- 然后我将设置中心点和黄色按钮之间的垂直间距。
- 我还将在黄色按钮和超级视图之间设置前导约束。
- 然后,我将设置纵横比(黄色按钮宽度与黄色按钮高度)。
- 另一种纵横比(黄色按钮与背景图片)。
然而,结果真的不是我想的那样。没关系,如果背景图像失真,我只希望黄色按钮留在背景图像的圆形区域内。
谢谢!
我不会走那么远,我会制作一个适合整个屏幕的按钮,将按钮图像设置为包括黄色圆圈在内的整个图像。然后使用下面类似的代码:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
// Get the specific point that was touched
CGPoint point = [touch locationInView:self.view];
if (point.x * 100 / parentView.width in range (0-100) && point.y*100 / parentView.heiht in range (0-100)){
// write your button event handler here.
}
}
要相对于背景定位您的圆圈,请设置约束以将圆圈的后缘与图像视图的后缘对齐,然后将乘数设置为适当的值,例如 214:640
。这将导致圆圈随着屏幕尺寸的增加而向右移动正确的量。
同样,将圆圈底部与图像视图底部对齐,并将乘数设置为适当的值,例如 478:900
,它会随着屏幕的增大使圆圈保持对齐。
调整比率,直到它们在一种 phone 尺寸(如 iPhone 5S)上看起来不错,然后它们将适用于 6S 和 6S Plus。
将圆宽度设置为图像视图宽度,并将乘数设置为 100:320
。