Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.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/9/loops/2.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 约束uiimageview以保持纵横比并基于设备大小展开_Ios_Uiimageview_Constraints - Fatal编程技术网

Ios 约束uiimageview以保持纵横比并基于设备大小展开

Ios 约束uiimageview以保持纵横比并基于设备大小展开,ios,uiimageview,constraints,Ios,Uiimageview,Constraints,我在两个项目中遇到了这个问题。通常情况下,配置文件图像以圆形显示 这对于iphone5大小来说是可以的。问题会在更大的设备上出现。比如 正如您可以看到的,纵断面图的大小与封面图像相比看起来很小。如果我让它基于外部图像增加,那么xocde会忽略纵横比约束,这会导致非圆形纵断面图 这是当前的约束图像 有什么建议我该怎么处理 更新 若我将“纵断面图像视图”上的“约束”设置为“随与背景图像的比率增加”,结果如下 请求图像视图的y,因为我希望它是中心,所以我设置了固定的hight=68,希望xco

我在两个项目中遇到了这个问题。通常情况下,配置文件图像以圆形显示

这对于iphone5大小来说是可以的。问题会在更大的设备上出现。比如

正如您可以看到的,纵断面图的大小与封面图像相比看起来很小。如果我让它基于外部图像增加,那么xocde会忽略纵横比约束,这会导致非圆形纵断面图

这是当前的约束图像

有什么建议我该怎么处理

更新 若我将“纵断面图像视图”上的“约束”设置为“随与背景图像的比率增加”,结果如下

请求图像视图的y,因为我希望它是中心,所以我设置了固定的hight=68,希望xcode能够打破这个限制,以保持纵横比

所以,如果我删除hight=68并添加类似约束的宽度

结果

这很简单:

  • 提供纵横比约束,使轮廓宽度pic=屏幕宽度
  • 选择“等宽度”约束并以乘数形式给出比率

  • 不要将高度和宽度设置为常量,而是在背景图像和轮廓图像之间设置等宽度约束:

    然后选择轮廓图像并将倍增值设置为所需值:


    现在,您还可以设置纵断面图像的纵横比。

    选择您的图像视图和它的超级视图,并提供
    等宽约束

    然后从
    尺寸检查器
    中选择
    等宽约束
    ,并减小其
    乘数
    ,直到获得所需的宽度

    现在选择您的图像视图并给出
    纵横比
    约束

    最后给出x和y位置的位置约束

    在你的例子中,我想是
    centerx
    centery
    的超级视图

    您的
    imageview
    将随设备宽度的增加或减少而增加,并始终保持方形


    您应该在tableviewcell类的
    layoutSubviews
    方法中设置动态
    角半径(imageview宽度或高度的一半),因为您需要圆角imageview,并且您的大小是动态的

    您有一个固定的
    宽度
    高度
    约束
    68
    ,这会导致图像1和2具有相同的大小。我还写道:“如果我让它基于外部图像增加,那么xocde会忽略纵横比约束,这会导致非环状轮廓图像视图”,我这样做了,但它不起作用。xcode忽略纵横比约束,因为它与基于background imageview.umm的hight和width increase冲突,我从未给出过高度和宽度设备在纵横比上不会增加尺寸。因此,在较大的设备上,背景图像不会随着纵横比的增加而增加,背景图像也可以,但纵断面图像视图必须具有纵横比,才能使其成为圆形。tableView.estimatedRowHeight=175;返回UITableViewAutomaticDimension;这是如何为更大的设备调整单元格大小我不考虑背景图像来调整配置文件图片的大小。剖面图位于视图/单元的中心。并且它具有纵横比。我没有给宽度和高度的个人资料图片。但我给出了一个约束条件,即轮廓pic的宽度等于单元格的宽度。然后在这个约束的乘数中,我给出了120:375的比率(ProfilePicWidth:CellWidth)。这将使轮廓pic根据单元的宽度计算宽度。纵横比将根据宽度计算高度。我以前用过这个,它也能用。CoderFrom94的答案也提出了同样的建议,但它不起作用。我以前测试过它。让我给你看看结果。这看起来几乎是正确的方案!但是,您应该使用一个与背景imageview大小相同的“uiview”,并与该视图(而不是图像视图)设置相同的宽度!问题更新以及“uiview”将如何影响与背面图像视图不同问题更新,检查结果。或者如果我做错了什么,请告诉我?现在,如果您的高度和宽度是动态的,那么您的角半径也必须是动态的!!我尝试在awakeFromNibl中记录imageview帧。它们与单元格中的相同。因此,我如何发现ios确实应用了约束,现在我应该使用imageview.frame.size.height/2如果使用tableview,您应该在
    单元格中执行此操作!是的,我使用的是tableview和相同的帧数,没有效果。