![](/img/trans.png)
[英]How do I display the back camera live video feed to an UIImageView?
[英]How do I implement code to get a live update to the displayed UIImageView?
我試圖弄清楚如何獲取屏幕截圖供稿並將其發送到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
#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。
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];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.