Xcode 8 • Swift 3
Синхронно:
if let filePath = Bundle.main.path(forResource: "imageName", ofType: "jpg"), let image = UIImage(contentsOfFile: filePath) {
imageView.contentMode = .scaleAspectFit
imageView.image = image
}
Асинхронно:
Создайте метод с обработчиком завершения, чтобы получить данные изображения из вашего url
func getData(from url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
URLSession.shared.dataTask(with: url, completionHandler: completion).resume()
}
Создайте способ загрузки изображения (запустите задачу)
func downloadImage(from url: URL) {
print("Download Started")
getData(from: url) { data, response, error in
guard let data = data, error == nil else { return }
print(response?.suggestedFilename ?? url.lastPathComponent)
print("Download Finished")
DispatchQueue.main.async() {
self.imageView.image = UIImage(data: data)
}
}
}
Использование:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
print("Begin of code")
if let url = URL(string: "http://www.apple.com/euro/ios/ios8/a/generic/images/og.png") {
imageView.contentMode = .scaleAspectFit
downloadImage(from: url)
}
print("End of code. The image will continue downloading in the background and it will be loaded when it ends.")
}
Расширение:
extension UIImageView {
func downloaded(from url: URL, contentMode mode: UIViewContentMode = .scaleAspectFit) {
contentMode = mode
URLSession.shared.dataTask(with: url) { data, response, error in
guard
let httpURLResponse = response as? HTTPURLResponse, httpURLResponse.statusCode == 200,
let mimeType = response?.mimeType, mimeType.hasPrefix("image"),
let data = data, error == nil,
let image = UIImage(data: data)
else { return }
DispatchQueue.main.async() {
self.image = image
}
}.resume()
}
func downloaded(from link: String, contentMode mode: UIViewContentMode = .scaleAspectFit) {
guard let url = URL(string: link) else { return }
downloaded(from: url, contentMode: mode)
}
}
Использование:
imageView.downloaded(from: "http://www.apple.com/euro/ios/ios8/a/generic/images/og.png")
Resharper является определенно большим инструментом. Это имеет умеренную кривую обучения, но легко взять для некоторых простых вещей и добавить мастерство позже. Это - хорошая цена для студентов и довольно дорогой для остальной части нас. Resharper подобен CodeRush, но, кажется, имеет большее следующее.
PowerCommands является большим набором дополнений, который прибывает лишенный Microsoft. Вещи как "Открытый в Windows Explorer", "Командная строка Здесь" и Скопировать/вставить ссылки.
обсуждение А относительно [1 115] дополнения плавание здесь где-нибудь .
Для прямой настройки, изменяющиеся цвета являются забавой, легкой, и дают Вам большой взрыв для Вашего маркера. Я предпочитаю немного персонализированную версию тема TextMate Rob Conery для Visual Studio. , После того как Вы добираетесь, окрашивает, Вам нравится, Вы можете всего экспортировать настройки и носить их с Вами везде, куда Вы идете.
Связанный с цветами и темами, пакет шрифта Consolas довольно изящен и симпатичен.
И как John рекомендует, мастерство [1 118], сочетания клавиш выплатят большие дивиденды.
Удостоверьтесь, что Вы устанавливаете тему пользовательского цвета. Эти URL являются хорошим местом, чтобы начать искать то:
http://www.codinghorror.com/blog/archives/000682.html http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx
я сам люблю Темную Схему Oren Ellenbogen. Действительно приятный к глазам. Кроме того, удостоверьтесь, что заменили стандартный шрифт Consolas или Inconsolata (каждый - Microsoft, другой свободно). Они являются оба потрясающими.
Освойте встроенные сочетания клавиш (, ссылки на C# и привязку клавиш VB cheatsheets могут быть найдены здесь )
Я соглашаюсь с настройкой темы - она делает среду намного легче иметь дело с.
можно выбрать некоторых из тех из галереи на сайте Hanselman или создать один с этим генератором онлайн .
У меня есть Resharper и Подсказка SQL, оба превосходны.
Я второй голосование за Resharper. Это действительно существенно улучшает качество Вашего кода. CodeRush также хорош, и более визуален, любой из них стоит денег (если можно убедить работодателя покупать их для Вас :)). Вы, вероятно, не хотели бы использовать обоих одновременно, тем не менее, так как существует много функционального перекрытия.
существует прохладное свободное дополнение, которое Scott Hanselman связывает с названным" rockscroll", который заменяет полосу прокрутки визуальным представлением Вашего кода, я нахожу это действительно полезным.
Вы могли попробовать Resharper от JetBraing ( http://www.jetbrains.com/resharper/ ), окончательное когда дело доходит до рефакторинга кода. Я также использую GhostDoc ( http://www.roland-weigelt.de/ghostdoc/ ) для помощи мне с документацией.
Лично мне нравится иметь приятного для глаз язя. Я думаю, что нашел ссылку на блог Hanselman, но я переключился на шрифт Consolas, немного больше, чем нормальный с более темной темой. Имеет все значение.
, я лично настраиваю контекстное меню для удаления тех, я не хочу и минимизирую свое время прокрутки. Это может также ускорить время, потраченное для меню для появления.
, Чтобы сделать это движение к Оснащает/Настраивает и Проверка объект "Контекстных меню". Меню появляется на вершине основной области проектирования. Для изменения их выбирают контекстное меню, Вы хотите и перетаскиваете объекты вокруг.
я обычно удаляю объекты как, "Получают Версию" в Сервере Основы Команды, поскольку я крайне редко использую его, и я могу использовать его из Проводника Команды, если я должен.
Настраивают Menu' s http://tim.yen.googlepages.com/CustomizeMenus.png/CustomizeMenus-full;init:.png
Я не могу кодировать без Resharper и GhostDoc, оба очень хороши, мне это нравится.