Как мне реализовать код, чтобы получить живое обновление отображаемого UIImageView? - PullRequest
1 голос
/ 16 марта 2011

Я пытаюсь выяснить, как взять канал захвата экрана и отправить его на устройство iOS (в данном случае iPad), чтобы изображения отображались на экране, обновляясь при отправке каждого нового изображения при очистке старого один из памяти.

Я только начинаю с основ, поэтому я пытаюсь заставить симулятор загрузить скриншот с рабочего стола и отобразить его на экране, а затем изменить изображение, как я делаю новый скриншот, и либо удалить старый один, чтобы я мог переименовать новый снимок экрана, чтобы он носил то же имя или просто перезаписал старый (таким образом, ссылка все равно должна указывать правильно в программном коде).

Я попытался использовать кнопку, которая перезагрузила мой UIImageView через:

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

где ScreenCapture - это имя UIImageView с надеждой на то, что он перезагрузит существующий ссылочный файл image.png, но нажатие кнопки просто закроет эту программу в симуляторе и вернется к начальному экрану симулятора.

Я использую неправильный объект при попытке сделать это через UIImageView? Это существующая программа / учебник по этому вопросу?

Я бы попытался провести обратный инжиниринг VNC для iPhone, но и проблемы с авторскими правами, и количество расширенных функций программирования намного выше меня.

Как только я смогу заставить что-то работать через 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];
}

Все остальное остается по умолчанию при выборе «View-based Application», и я подключил ScreenCapture к UIImageView в Интерфейсном Разработчике, а также Обновил и нажал кнопку к UIBarButtonItem в Интерфейсном Разработчике.

1 Ответ

0 голосов
/ 16 марта 2011

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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...