1

我想使用 UISlider 来控制图像的大小。当您以一种方式滑动滑块时,上面的 UIImage 应该会增长,而当您以另一种方式滑动时,它应该会缩小。比例应该保持不变。数学应该类似于滑块值 = 宽度,高度 =(高度/宽度比)* 滑块值。我认为可以做到这一点的方法是创建一个变量并将该变量设置为图像大小,然后将该变量设置为滑块值,但我对这种编程没有经验,也不知道从哪里开始。我发现了这个问题,但我不确定如何实现它的代码。任何朝着正确方向的观点,即使只是一个概念性的解释,以便我知道如何编写代码,都值得赞赏。注意-我确实找到了这个回答改变大小,所以现在我只需要弄清楚如何将它链接到滑块。

编辑-现在代码已经完成并且可以工作了,如果有人想看到它的实际效果,我的 repo 就在这里

4

1 回答 1

1

我知道您在问题中指定了 UIImage,但是如果您尝试调整屏幕上显示的图像的大小,您可以通过修改包含该图像的图像视图来做到这一点。在这种情况下,您需要修改图像视图的转换属性。

首先将滑块最小值设置为 0.5,最大值设置为 1.5,并将其值更改控制事件链接到 IBAction 设置,如下所示。它将从图像视图的中心展开和收缩图像视图。

- (IBAction)sliderValueChanged:(UISlider *)sender
{
    [_myImageView setTransform:CGAffineTransformMakeScale(sender.value, sender.value)];
}

此外,如果您链​​接到 Microsoft WPF 和代码的第一篇文章,则在不知道这两个相关 API 的情况下无法直接转换代码。然后您提供的第二个链接确实显示了如何直接更改 UIImage 的分辨率。

您可以对图像视图执行与我在上面所做的类似的操作,例如读取滑块值并以公式方式设置图像大小,但我不建议这样做。滑块值更改方法会被非常频繁地调用,这样做可能会导致性能问题。如果您提供有关您正在尝试做的事情的更多详细信息,我可能会提供不同的建议。

于 2013-09-01T02:41:38.497 回答