【问题标题】:How do I implement code to get a live update to the displayed UIImageView?如何实现代码以实时更新显示的 UIImageView?
【发布时间】:2011-03-16 19:01:39
【问题描述】:

我正在尝试弄清楚如何获取屏幕捕获提要并将其发送到 iOS 设备(在本例中为 iPad)并在屏幕上显示图像,并在发送每个新图像时更新,同时清除旧图像一个来自记忆。

我只是从基础开始,所以我试图让模拟器从桌面加载屏幕截图并将其显示在屏幕上,然后在我拍摄新屏幕截图时更改图像,或者删除旧的一个,这样我就可以重命名新的屏幕截图以使用相同的名称或简单地覆盖旧的屏幕截图(因此引用仍应在编程代码中正确指向)。

我尝试使用通过以下方式重新加载我的 UIImageView 的按钮:

- (IBAction)buttonPressed:(id)sender
{
    [UIImageView setImage:ScreenCapture];
}

其中 ScreenCapture 是 UIImageView 的名称,希望它会重新加载现有的引用 image.png 文件,但单击按钮只会退出模拟器中的该程序并返回模拟器的主屏幕。

尝试通过 UIImageView 完成此操作时,我是否使用了错误的对象?他们是现有的程序/教程吗?

我会尝试对 iPhone 的 VNC 进行逆向工程,但版权问题和高级编程功能的数量远远超出了我的能力范围。

一旦我可以通过 Xcode 获得一些东西,我还计划尝试通过 MonoTouch 实现相同的东西,看看哪种语言更易于使用且对初学者更友好。

感谢您的帮助, 〜克里斯

标题:

#import <UIKit/UIKit.h>

@interface Screen_Capture_3ViewController : UIViewController {

    IBOutlet UIImageView *ScreenCapture;
    IBOutlet UIBarButtonItem *Update;
}

@property (nonatomic, retain) IBOutlet UIImageView *ScreenCapture;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *Update;

- (IBAction)buttonPressed:(id)sender;

@end

.m:

#import "Screen_Capture_3ViewController.h"

@implementation Screen_Capture_3ViewController

@synthesize ScreenCapture;
@synthesize Update;

- (IBAction)buttonPressed:(id)sender
{
    [UIImageView setImage:ScreenCapture];
}

选择“基于视图的应用程序”时,其他所有内容都保持默认设置,我将 ScreenCapture 连接到 Interface builder 中的 UIImageView,以及将 Update 和 buttonPressed 连接到 Interface Builder 中的 UIBarButtonItem。

【问题讨论】:

  • 发布你的代码,而不是一行。
  • 您实际上是从哪里获取图像的?
  • 我正在从桌面获取图像,使用 command-shift-3 屏幕截图命令并将每个新屏幕截图重命名为 temp.png,覆盖并删除之前的屏幕截图

标签: iphone xcode ios ipad uiimageview


【解决方案1】:

setImage 是一个实例方法,不是类方法,所以不能直接发送给 UIImageView(也没有多大意义)。

在标题中保留您当前的代码(但只有属性应标记为 IBOutlet):

@interface Screen_Capture_3ViewController : UIViewController {

UIImageView *ScreenCapture;
UIBarButtonItem *Update;

}

@property (nonatomic, retain) IBOutlet UIImageView *ScreenCapture;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *Update;

- (IBAction)buttonPressed:(id)sender;

@end

在您的实现中,您的事件处理程序应该是这样的:

- (IBAction)buttonPressed:(id)sender {
    UIImage* newImage = [UIImage imageWithContentsOfFile:@"pathToImage.png"];
    [ScreenCapture setImage:newImage];
}

【讨论】:

  • @lazycs 当我使用 NSImage 时,它​​不被识别为“限定符”,就像 UIImageView 的用法一样。有没有一种特殊的方法来实现这种类型?我用过:IBOutlet NSImage *ScreenCapture2; @property(非原子,保留)IBOutlet NSImage *ScreenCapture2; @synthesize ScreenCapture2; - (IBAction)buttonPressed:(id)sender { NSImage *ScreenCapture2 = temp.png [ScreenCapture setImage:ScreenCapture2]; }
  • 糟糕,我的意思是 UIImage。我会更新帖子。另外,您可以编辑您的帖子以在多行上显示您的代码吗?这真的很难读。
  • 它不允许我将 cmets 编辑为多行,它使用某种形式的原始文本将所有内容放在同一行。
  • 我将发布多个 cmets 以将其放在多行上。尝试使用 UIImage 而不是 UIImageView 进行 buttonPress 操作时,它仍然退出到模拟器的主屏幕。添加代码如下:
  • IBOutlet UIImage *ScreenCapture2;
猜你喜欢
  • 1970-01-01
  • 2015-06-06
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 2017-07-02
  • 1970-01-01
  • 2021-11-21
相关资源
最近更新 更多