iOS UIImageView Position



我需要把一个图像放在屏幕的底部,所以我使用UIImageView并尝试了两种方法来指定它的位置:

someImageView.frame=CGRectMake(x, y, a, b);
[someImageView initWithFrame:CGRectMake(x, y, a, b)];

但是它出现在顶部,覆盖了导航栏。我做错了什么?你有什么建议吗?

提前感谢。

您确定假设的屏幕坐标是正确的吗?屏幕的原点在左上方,而不是左下方。尝试在Interface Builder中添加一个对象,并在其中检查它的框架。

我对上面代码片段中的第二行有点困惑。你是在一个已经初始化的对象上调用initWithFrame:吗?如果是这样,您可能会看到一些意想不到的行为。对象应该声明:

UIImageView *someImageView = [[UIImageView alloc] initWithFrame:frame];

而不是:

UIImageView *someImageView = [UIImageView alloc];
[someImageView initWithFrame:frame];

始终保持allocinit在同一行代码

记住,屏幕的左上角是(0,0),而右下角是(320,460)。你可以使用

someImageView.frame=CGRectMake(320 - a, 460 - b, a, b);

假设a为宽度,b为高度

您的代码是正确的!检查您在CGRectMake中使用的值。例如:

someImageView.frame = CGRectMake(0, 
   [UIScreen mainScreen].bounds.size.height-ivHeight,
   [UIScreen mainScreen].bounds.size.width, 
   ivHeight);

你的(x,y,a,b)可能是问题所在。确保y大于0。另外,请确保将框架添加到正确的子视图中。将它添加到错误的代码中可能会导致问题。如果你仍然有问题,把你正在使用的代码贴出来,我可能会更有帮助。

另外,不要在不先调用alloc的情况下调用initWithFrame。应该是:

someImageView = [[UIImageView alloc] initWithFrame:CGRectMake(x, y, a, b)];

最新更新