我想使用UISlider来控制图像的大小。当你滑动滑块时,上面的UIImage应该增长,当你滑动另一个方向它应该缩小。比例应该保持不变。数学应该像滑块值=宽度,高度=(高/宽比)*滑块值。我认为可以这样做的方法是通过制作一个变量并将该变量设置为图像大小,然后使该变量=滑块值,但我没有这种编程的经验,也不知道从哪里开始。我发现了this问题,但我不确定如何实现其代码。正确的方向上的任何一点,即使只是一个概念性的解释,所以我知道如何编写代码,是值得赞赏的。注意 - 我确实找到了this关于改变大小的答案,所以现在我只需要弄清楚如何将它链接到滑块。
编辑 - 现在代码已经完成并正常工作,如果有人希望在行动中看到它,我的回购是here。
答案 0 :(得分:1)
我知道您在问题中指定了UIImage,但是如果您尝试调整屏幕上显示的图像的大小,则可以通过修改包含图像的图像视图来完成此操作。在这种情况下,您需要修改图像视图的transform属性。
首先将滑块最小值设置为0.5,将最大值设置为1.5,并将其值更改控制事件链接到IBAction设置,使其看起来像这样。它将从图像视图的中心扩展和收缩图像视图。
- (IBAction)sliderValueChanged:(UISlider *)sender
{
[_myImageView setTransform:CGAffineTransformMakeScale(sender.value, sender.value)];
}
此外,您链接到if的第一篇文章对于Microsoft WPF并且在不知道相关API的情况下无法直接转换代码。然后,您提供的第二个链接将显示如何直接更改UIImage的分辨率。
你可以做一些类似于我上面用图像视图做的事情,比如读取滑块值和公式设置图像的大小,但我不建议这样做。将更频繁地调用滑块值更改方法,并且可能会导致性能问题。如果您提供有关您尝试做的更多详细信息,我可能会提供不同的建议。