Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ios中使用Constants使视图位置动态?_Ios_Objective C_Uibutton_Autolayout - Fatal编程技术网

如何在ios中使用Constants使视图位置动态?

如何在ios中使用Constants使视图位置动态?,ios,objective-c,uibutton,autolayout,Ios,Objective C,Uibutton,Autolayout,我正在开发一个应用程序,其中显示了一个图像视图。图像上有一些红点是ui按钮。当用户点击按钮时,图像应该缩放。为此,我添加了一个带有如下约束的滚动视图 内部滚动视图我有imageview 现在,当我的屏幕大小改变时,图像大小也会改变。我添加了一个UIButton作为红点。我给出了它的水平和垂直线的约束 现在,当设备尺寸改变时,图像上的按钮位置也会改变。 我想要的是,即使图像大小增大,所有设备上的按钮位置也应相同。请告诉我如何做到这一点 在UIImage视图顶部添加按钮 然后通过从按钮拖动到

我正在开发一个应用程序,其中显示了一个图像视图。图像上有一些红点是ui按钮。当用户点击按钮时,图像应该缩放。为此,我添加了一个带有如下约束的滚动视图

内部滚动视图我有imageview

现在,当我的屏幕大小改变时,图像大小也会改变。我添加了一个UIButton作为红点。我给出了它的水平和垂直线的约束

现在,当设备尺寸改变时,图像上的按钮位置也会改变。 我想要的是,即使图像大小增大,所有设备上的按钮位置也应相同。请告诉我如何做到这一点

  • 在UIImage视图顶部添加按钮
  • 然后通过从按钮拖动到图像来添加约束
  • 首先对UIImageView和top的前导空间设置两个约束 UIImageView中的空间为常数或标准,具体取决于ur 需要
  • 你的代码应该是这样的。。 button.top=image.top button.leading=image.leading

  • 添加这两个约束将完成您的工作

  • 如果你想确定按钮的大小,你需要添加hight和 宽度限制。 我会附上一张它看起来像什么的图片
这里的天气图标是图像,我在按钮上设置约束 (删除尾部和底部的约束)

根据图像放置按钮

  • 将图像设置为已知大小,例如100 x 100 然后将按钮放在所需位置
  • 现在检查从图像顶部到按钮的距离。 如果是说12,那么你的比率将是12:100
  • 现在将常量(
    按钮.top
    )设置为12
  • 那么现在如果高度变为200乘以比率 i、 e
    图像高度*12/100
    在给定示例中,
    常数=200(新图像高度)*(12/100)(比率)
    =24 因此
    按钮的新距离.top=24

  • 与视图一样,可以将约束拖放到viewController.m文件中:

    @property (weak, nonatomic) IBOutlet NSLayoutConstraint *myLayoutConstraint;
    
    您可以在其中以编程方式操作:

    [UIView animateWithDuration:1.0 animations:^{
        self.myLayoutConstraint.constant = 10;
    } completion:^(BOOL finished) {
        //handle completion
    }];
    

    我想保持按钮固定的位置。我的意思是,如果图像中的红点在云上,那么它应该在每个设备上的云上,它不应该移动哦,所以你的图像在滚动视图中正确吗??所以你只需要在uiimage上拖放按钮。然后将鼠标指针从按钮拖动到uiimage。我有选择权。我将编辑我的答案。是的。但问题是,如果图像大小增加,则图像上红点按钮的位置会发生变化。例如,如果一台设备上的红点图像位于云端,则在另一台设备上的该位置相同。然后,我们必须通过编程设置约束。看看你的图像比例是多少。根据比率u可以为约束设置常量值。。。。为此,请获取参考图像分辨率,并检查按钮位置值是多少。。。。根据你的图像大小增减的多少,根据Lyokay调整按钮。我知道这是一个解决方案,我认为我可以通过使用其他方法使这个过程更容易。然后我必须通过编程为每个设备设置不同的约束。