【问题标题】:RunTime error with UIScrollViewUIScrollView 的运行时错误
【发布时间】:2013-12-13 05:09:43
【问题描述】:

我正在尝试将 UIImageView 对象添加到 UIScrollView。

FVImageSequence *imageSquence;
[imageSquence setImage:[UIImage imageNamed: @"car_0.jpg"]];
[scroll addSubview:imageSquence];
scroll.userInteractionEnabled=YES;

imageSequence 是继承 UIImageView 的 FVImageSequence 类的一个对象

@interface FVImageSequence : UIImageView {
NSString *prefix;
int numberOfImages;
int current;
int previous;
NSString *extension;
int increment;
}

但是当我运行代码时它崩溃了。当我使用直接 UIImageView 对象时,它工作正常。我该如何解决这个问题?

UIImageView *imageSquence;
[imageSquence setImage:[UIImage imageNamed: @"car_0.jpg"]];
[scroll addSubview:imageSquence];
scroll.userInteractionEnabled=YES;

这段代码运行良好。第一个有什么问题?

【问题讨论】:

  • 你在哪里初始化 UIImageView 对象?
  • #import #import "FVImageSequence.h" 接口 CarViewController : UIViewController { IBOutlet FVImageSequence *imageSquence; IBOutlet UIScrollView *scroll; IBOutlet UIImageView *img; } 结束
  • 我已经在视图控制器头文件中添加了对象并访问了该对象
  • 然后只使用那个通过IBOutlet连接的对象。
  • @Bhumeshwerkatre 是的,这就是我正在做的事情。你能看看我在答案中添加的更多代码吗

标签: ios iphone objective-c uiscrollview uiimageview


【解决方案1】:

您必须在使用之前启动(alloc init)FVImageSequence 对象

【讨论】:

  • 真的吗?这是不可能的,你不会看到imageView,因为它是nil
  • #import #import "FVImageSequence.h" 接口 CarViewViewController : UIViewController { IBOutlet FVImageSequence *imageSquence; IBOutlet UIScrollView *scroll; IBOutlet UIImageView *img; } 结束
  • 这是我的视图控制器头文件,我正在使用全局对象
【解决方案2】:

初始化图像序列

FVImageSequence *imageSquence = [[FVImageSequence alloc] init];

【讨论】:

    【解决方案3】:

    使用下面的代码:

    FVImageSequence *imageSquence = [[FVImageSequence alloc] init];//must initialize FVImageSequence class
    [imageSquence setImage:[UIImage imageNamed: @"car_0.jpg"]];
    [scroll addSubview:imageSquence];
    scroll.userInteractionEnabled=YES;
    

    谢谢

    【讨论】:

      【解决方案4】:
      #import <UIKit/UIKit.h>
      #import "FVImageSequence.h"
      @interface CarViewViewController : UIViewController
      {
       IBOutlet FVImageSequence *imageSquence;
       IBOutlet UIScrollView *scroll;
       IBOutlet UIImageView *img;
      }
      @end
      
      
      
      @implementation CarViewViewController
      
      - (void)viewDidLoad
      {
         [super viewDidLoad];
         // Do any additional setup after loading the view, typically from a nib.
         [imageSquence setImage:[UIImage imageNamed: @"car_0.jpg"]];
         [scroll addSubview:imageSquence];
         scroll.userInteractionEnabled=YES;
      }
      

      这里可行

         [imageSquence setImage:[UIImage imageNamed: @"car_0.jpg"]];
         [scroll addSubview:imageSquence];
      

      这会崩溃

       [img setImage:[UIImage imageNamed: @"car_0.jpg"]];
         [scroll addSubview:img];
      

      【讨论】:

      • 检查您的 IBOutlet 是否与相应对象准确连接?您遇到什么异常?
      • @Bhumeshwerkatre 谢谢它现在工作正常。我认为 StoryBoard 连接有问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多