2015-04-14 3 views
1

Всего iOS/Swift newb здесь. У меня есть View (или UIImageView, не думаю, что это важно) на моем storyBoard, и мне нужно обратиться к нему в моем коду viewController. Как мне это сделать?Доступ или ссылка на UIImageView с viewController

Почему? Я пытаюсь показать предварительный просмотр камеры в «представлении», который не является полноэкранным.

Я использую пример кода для камеры, которая включает в себя этот код

func beginSession() { 
var err : NSError? = nil 
captureSession.addInput(AVCaptureDeviceInput(device: captureDevice, error: &err)) 

if err != nil { 
    println("error: \(err?.localizedDescription)") 
} 

previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) 
self.view.layer.addSublayer(previewLayer) 
previewLayer?.frame = self.view.layer.frame 
captureSession.startRunning() 
} 

, что, кажется, говоря, положить previewLayer в (основной) «взгляд» на моей раскадровки.

Итак, я понял и исследовал, что я мог бы добавить sub View (или UIImageView) в свою раскадровку и сделать его размером, который я хочу, а затем добавить в него PreviewLayer.

Например. от another question на SO

... а затем изменить часть в нижней части, которая говорит,

"previewLayer? .frame = self.view.layer.frame"

к вашему 200by200 View .layer.frame

Хорошо, так как я могу получить свой вид на 200x200, поэтому я могу получить доступ к его фрейму (даже не знаю, какой слой и кадр находятся в этой точке)?

Я попытался управлять перетащить вид, или UIImageView в viewController из раскадровки, но это не сработало (ничего не сделало).

+0

Чтобы получить доступ к любому объекту из раскадровки в вашем ViewController, вам необходимо добавить подключение к розетке. Откройте StoryBoard, откройте редактор ассистентов (редактор View/Assistant Editor) и CONTROL-DRAG линию от представления к коду ViewController, создав новое соединение с выходом. – cleuton

+0

Вы сказали, что пытались контролировать перетаскивание из раскадровки в ViewController, но какой вид вы пытались подключить? Вы должны кривить представление (предположим, UIImageView), удерживать изображение, а затем отображать редактор помощников (это важно), а затем перетащить его на управление. Это действие должно создать новую переменную класса, помеченную как @IBOutlet. Вы попробовали это? – cleuton

ответ

4
  1. Вставить эту строку в классе вашего зрения контроллера:

    @IBOutlet слабый уаг ImageView: UIImageView!

  2. Открыть раскадровки и выберите ваш взгляд контроллер

  3. Открыть соединения инспектор по правой стороне окна Xcode.
  4. Подключить изображениеПросмотреть кругружицу с изображением.

    enter image description here

+0

Спасибо! Хороший путь тоже. –

3

Я думаю, что мой маленький учебник и исходный код поможет вам!

enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here

и заполнить код в ViewController.скор https://gist.github.com/MihaelIsaev/273e4e8ddaaf062d2155

Полный исходный код здесь https://github.com/MihaelIsaev/SwiftCameraView

+1

lol эта произведение 50 шт – Esqarrouth

+0

lol, надеюсь))) –

+0

Sweet! Не понял, что я должен был буквально перетащить его в код, подумал, что он должен был пойти к этому желтому значку «View Controller» ... Спасибо! Будут присуждать награду в 18 часов, когда мне разрешат. –

Смежные вопросы