【发布时间】:2014-05-17 21:35:08
【问题描述】:
我正在尝试根据 UISlider 将两个 UIImageView 一起移动。这是一张图片,便于理解:
当滑块的球滑到最左边(零值)时,只会显示绿色。当它滑到最右边(值 600)时,应该只显示红色。如果滑块的值为 480,它应该显示 80% 的红色图片和 20% 的绿色。我用来尝试实现此目的的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
self.slider.minimumValue = 0;
self.slider.maximumValue = 600;
}
- (IBAction)sliderChanged:(id)sender {
[imageViewLeft setFrame:CGRectMake(slider.value - 50, imageViewLeft.frame.origin.y,imageViewLeft.frame.size.width,imageViewLeft.frame.size.height)];
[imageViewRight setFrame:CGRectMake(slider.value + 50, imageViewRight.frame.origin.y,imageViewRight.frame.size.width,imageViewRight.frame.size.height)];
}
这工作得很好,但是第二次我更改滑块时,红色图像(名为 imageViewLeft)会缩小,而 imageViewRight 保持相同大小。我一生都无法弄清楚为什么(我对编程和 iOS 还是很陌生)。有谁知道我应该改变什么或如何最好地做到这一点?
【问题讨论】:
-
您的图像浏览量有多大?它们都是全屏宽度(320)吗?
-
@rdelmar 他们已经过全屏了,每个都是 481 x 568。
-
你是从哪里得出50这个值的?它与你所说的你正在尝试做的事情无关。当滑块在中间时(值为 300),绿色视图的左边缘将为 350,即偏离屏幕右侧。
-
离开绿色背景全屏,只调整红色视图不是更容易吗?
标签: ios objective-c uiimageview uislider