【发布时间】:2010-10-29 13:26:53
【问题描述】:
我有一个带有一个 UIImageView 和一个滑块的视图。 Slider Min 1 Max 10. 当滑块移动时 UIImageView 应该显示不同的图像。滑块为 1 将显示 test1.png,滑块为 2 将显示 test2.png,滑块为 3 将显示 test3.png 等等...
在 Interface Builder 中,我已将 IBOutlet 滑块连接到水平滑块,将 IBOutlet 图像连接到图像视图,并将 IBAction changeImage 连接到水平滑块“值已更改”
我已将滑块浮动转换为 int。在 IBAction changeImage 中放置了一个 NSLog 语句,以确保方法被调用,它是。我在构建时没有收到错误消息。但是,当我在 UIImageView 中的模拟器图像中构建并运行和移动滑块时不会改变。问题一定是“逻辑”我碰壁了,想不通。
#import <UIKit/UIKit.h>
@interface SliderViewController : UIViewController {
IBOutlet UISlider *slider;
IBOutlet UIImageView *image;
}
@property (nonatomic, retain) IBOutlet UISlider *slider;
@property (nonatomic, retain) IBOutlet UIImageView *image;
- (IBAction)changeImage;
@end
#import "SliderViewController.h"
@implementation SliderViewController
@synthesize slider;
@synthesize image;
- (IBAction)changeImage {
NSLog(@"changeImage method being called!!!!");
int intSlider = (int)(slider.value);
if (intSlider == 0) {
image.image = [UIImage imageNamed:@"ash1.png"];
}
if (intSlider == 1) {
image.image = [UIImage imageNamed:@"ash2.png"];
}
if (intSlider == 2) {
image.image = [UIImage imageNamed:@"ash3.png"];
}
if (intSlider == 3) {
image.image = [UIImage imageNamed:@"ash4.png"];
}
if (intSlider == 4) {
image.image = [UIImage imageNamed:@"ash5.png"];
}
if (intSlider == 5) {
image.image = [UIImage imageNamed:@"ash6.png"];
}
if (intSlider == 6) {
image.image = [UIImage imageNamed:@"ash7.png"];
}
if (intSlider == 7) {
image.image = [UIImage imageNamed:@"ash8.png"];
}
if (intSlider == 8) {
image.image = [UIImage imageNamed:@"ash9.png"];
}
if (intSlider == 9) {
image.image = [UIImage imageNamed:@"ash10.png"];
}
if (intSlider == 10) {
image.image = [UIImage imageNamed:@"ash11.png"];
}
}
【问题讨论】:
标签: objective-c