2016-09-21 2 views
31

В Xcode 8 у вас есть изображения, автозаполненные при наборе текста.Xcode 8 Завершение изображения

Вопрос: Почему?

Я попытался инициализировать UIImage с предлагаемым результатом, но он не работает.

Inside UIImage Outside UIImage

Кто-нибудь знает, как использовать его?

+0

Я думаю, что это работает только в игровых площадках она появляется. По крайней мере, так оно и есть. – NickDK

+2

Вам нужно предоставить дополнительную информацию, возможно, поделиться окружающим кодом и версией Xcode. Литералы изображений отлично работают для меня, не только на детских площадках. –

+0

Это самая отягчающая функция, с которой я столкнулся с Xcode. Это похоже на: «Вот временами ... ПСИХ!» – Adrian

ответ

45

Xcode 8 автоматически распознает любые изображения, которые вы получили в Каталоге активов, и предлагайте их в качестве предложения внутри инициализатора UIImage.

Поэтому в основном то, что вам нужно сделать, это просто следующий (как вы сделали в вашем вопросе, но должно быть что-то еще that's мешая его):

let i = voiture // image name 

А затем просто использовать i когда вы хотите установить изображение.

Под капотом создается код, который выглядит так: #imageLiteral(resourceName: "voiture.png"). Но встроенный в исходный редактор, вы просто увидите имя файла изображения. Синтаксис #imageLiteral распознается только на Swift 3 или более поздней версии.

Here является демонстрацией видео ссылки, где я это сделать и here найти ссылку на проект в образца, который я создал.

Примечание что вам нужно нажать на подсказку instellisense, чтобы вы увидели эскиз изображения в коде, а затем имя изображения.

Update:
Эта функция остается в Xcode версии 9.0 бета 6 (9M214v) enter image description here

+0

Если вы посмотрите второй скриншот, у меня возникла проблема с компилятором, и я не могу построить ... – CZ54

+2

Как я писал в ответ, должно быть что-то еще беспокоит его. Вы смотрели видео, которое я загрузил, так же, как я это сделал. [Здесь] (https://drive.google.com/open?id=0B2TR9xoKqvZNeFNpNHBJOXFSbm8) является ссылкой на проект, который я создал, попробуйте загрузить и запустить его и посмотреть, работает ли он для вас. –

+2

Единственный разницу между вашим образцом и моим приложением - это то, что вы находитесь в Swift 3. Поэтому я думаю, что это он – CZ54

10

Литерал изображения уже является UIImage, вам не нужно передавать его в UIImage для его инициализации.

+2

Не работает. Посмотрите мое обновление – CZ54

4

Я использую эту функцию. В принципе, если у меня есть изображение, которое начинается с «ic», я бы набрал let i =, а затем ic. На этом этапе Xcode 8 покажет раскрывающееся изображение, и я затем выберу правильное изображение из списка. Я никогда не удосужился набрать UIImage(. Он работает так же, как и код автозаполнения, за исключением того, что он использует имя файла изображения.

В вашем случае, возможно, есть еще одна проблема, из-за которой компиляция завершилась неудачей.

10

Я не могу найти для него «официальный» источник, но из моих личных испытаний кажется, что, хотя автозаполнение работает как в проектах Swift 2.3, так и в Swift 3.0, графические литералы будут работать корректно только в проекте Swift 3 ,

Попробуйте на игровой площадке Swift 3, и вы обнаружите, что все работает отлично.

enter image description here

+3

Да, подтвердите, что я получаю ошибки в проекте Swift 2.3. – ColdLogic

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