自动布局是拉伸图像,自动布局,ios
Posted
技术标签:
【中文标题】自动布局是拉伸图像,自动布局,ios【英文标题】:auto layout is stretching image, autolayout, ios 【发布时间】:2013-02-17 02:12:40 【问题描述】:我将 uiimageview 添加到按钮的方式是:
-
uiimageview 位于 y 轴中心(刚刚再次编辑)
uiimageview 的尾随空间总是距离按钮 10 个点
为此,我正在执行以下操作
// Just added these lines
UIImage *img = [UIImage imageNamed:@"reload.png"];
indicator = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, img.size.width, img.size.width)];
indicator.image = img;
[self.logInButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat: @"H:|[indicator]-(10)-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(indicator)]];
[self.logInButton addConstraint:[NSLayoutConstraint constraintWithItem:self.logInButton
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:indicator
attribute:NSLayoutAttributeCenterY
multiplier:1.0
constant:0]];
但是,我得到的是 uiimageview 像下面这样伸展
有没有人对此有任何想法。所有的 cmets 都在这里表示赞赏。
【问题讨论】:
【参考方案1】:您的约束是说图像视图应与左边缘齐平并距右侧 10 个点,因此如果按钮大于图像的大小,图像将被拉伸。您要么需要将其在 x 方向居中(并消除右侧的那个),要么为图像视图设置特定大小。
【讨论】:
我还是一头雾水,刚刚编辑了OP,请再看一遍。 @ttran,我不明白你的困惑。您的 constraintWithItem 代码以 y 轴为中心,这是垂直的,而不是水平的。视觉格式使其靠左边缘(H:|[indicator] 这部分)和右边缘的 10(这部分 [indicator]-(10)-|)。您需要摆脱视觉约束并添加另一个像您的第二个,但具有 CenterX 属性。 抱歉,如果 OP 再次失去你。我的目标就像this。这就是我使用centerY的原因。就像你说的,如果我删除视觉约束,我不会有一个位于按钮右边缘 10 处的图像。 @ttran,好的,您终于指出了您要完成的工作,这很好。我无法从您发布的内容中看出它应该是什么样子。所以,你只想做出正确的约束,摆脱左边的约束。只需@"[指标]-(10)-|" 感谢 rdelmar。我为正确的约束所做的是 [indicator]-(10)-|:H 并且 xcode 抱怨语法。现在我知道如何做正确的了。以上是关于自动布局是拉伸图像,自动布局,ios的主要内容,如果未能解决你的问题,请参考以下文章