gpt4 book ai didi

ios - 使用 UISlider 移动两个 UIImageView

转载 作者:行者123 更新时间:2023-11-28 20:01:47 26 4
gpt4 key购买 nike

我正在尝试根据 UISlider 将两个 UIImageView 移动到一起。为了更好地理解,这是一张图片:

enter image description here

当 slider 的球滑到最左边(值为零)时,将只显示绿色。当它滑到最右边(值为 600)时,应该只显示红色。如果 slider 的值为 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)];

}

这工作正常,但第二次我更改 slider 时,红色图像(名为 imageViewLeft)缩小,而 imageViewRight 保持相同大小。我一辈子都弄不明白为什么(我对编程和 iOS 还是很陌生)。有谁知道我应该更改什么或如何最好地完成此更改?

最佳答案

您可以通过保持绿色背景全屏并仅调整红色 View 来实现或多或少相同的效果:

- (void)viewDidLoad
{
[super viewDidLoad];

self.slider.minimumValue = 0;
self.slider.maximumValue = 600;

imageViewRight.frame = self.view.bounds;
}

- (IBAction)sliderChanged:(id)sender {
[imageViewLeft setFrame:CGRectMake(0, 0,(self.slider.value/self.slider.maximumValue)*sliderimageViewRight.frame.size.width,imageViewRight.frame.size.height)];
}

或者,如果您仍然希望两个 View 都是边到边的,那么您可以这样做:

- (void)viewDidLoad
{
[super viewDidLoad];

self.slider.minimumValue = 0;
self.slider.maximumValue = 600;
}

- (IBAction)sliderChanged:(id)sender {
[imageViewLeft setFrame:CGRectMake(0, 0,(self.slider.value/self.slider.maximumValue)*self.view.bounds.size.width,self.view.bounds.size.height)];
[imageViewRight setFrame:CGRectMake(imageViewLeft.frame.size.width, 0,self.view.bounds.size.width-imageViewLeft.frame.size.width,self.view.bounds.size.height)];
}

关于ios - 使用 UISlider 移动两个 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23716299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com