使用滑块控制图像大小
Posted
技术标签:
【中文标题】使用滑块控制图像大小【英文标题】:Control image size with slider 【发布时间】:2013-09-01 02:12:42 【问题描述】:我想使用 UISlider 来控制图像的大小。当您以一种方式滑动滑块时,上面的 UIImage 应该会增长,而当您以另一种方式滑动时,它应该会缩小。比例应该保持不变。数学应该类似于滑块值 = 宽度,高度 =(高度/宽度比)* 滑块值。我认为可以做到这一点的方法是创建一个变量并将该变量设置为图像大小,然后将该变量设置为滑块值,但我对这种编程没有经验,也不知道从哪里开始。我发现了this 问题,但我不确定如何实现它的代码。任何朝着正确方向的观点,即使只是一个概念性的解释,以便我知道如何编写代码,都值得赞赏。注意-我确实找到了this 更改大小的答案,所以现在我只需要弄清楚如何将其链接到滑块。
编辑-现在代码已经完成并且可以工作了,如果有人想看到它的实际效果,我的 repo 是here。
【问题讨论】:
【参考方案1】:我知道您在问题中指定了 UIImage,但如果您尝试调整屏幕上显示的图像的大小,您可以通过修改包含该图像的图像视图来实现。在这种情况下,您需要修改图像视图的转换属性。
首先将滑块最小值设置为 0.5,最大值设置为 1.5,然后将其值更改控制事件链接到 IBAction 设置,如下所示。它将从图像视图的中心展开和收缩图像视图。
- (IBAction)sliderValueChanged:(UISlider *)sender
[_myImageView setTransform:CGAffineTransformMakeScale(sender.value, sender.value)];
此外,如果您链接到 Microsoft WPF 的第一个帖子,并且在不知道这两个相关 API 的情况下无法直接转换代码,则无法直接转换代码。然后您提供的第二个链接确实显示了如何直接更改 UIImage 的分辨率。
您可以执行与我在上面对图像视图所做的类似的操作,例如读取滑块值并以公式方式设置图像大小,但我不建议这样做。滑块值更改方法会被非常频繁地调用,这样做可能会导致性能问题。如果您提供更多关于您正在尝试做的事情的详细信息,我可能会提供不同的建议。
【讨论】:
我正在尝试制作一个测距仪风格的相机应用程序,您可以在其中更改框架线的大小,从而可以在拍照时进行缩放而不会遮挡您的视野。一旦我设置了滑块来控制 uiimageview 的大小,我将制作一个截取图像的按钮,我已经知道该怎么做。我希望它的分辨率足够高,可以正常工作。无论如何,您的代码和解释看起来很清楚,我将开始尝试尽快实施它们,并在我得到它工作或得出您绝对正确的结论后立即接受您的答案。 谢谢,还有一个问题-使用您的代码,我的图像从左上角向外变大。有没有办法让它保持在视图的中心,这样虽然它可以调整自己的大小,但它的中心不会移动?如果有帮助,我可以发布正在发生的事情的屏幕截图。 实际上问题在于我打开了自动布局,我将其关闭,现在它工作得很好。非常感谢!以上是关于使用滑块控制图像大小的主要内容,如果未能解决你的问题,请参考以下文章