Swift SVG векторные изображения

swift

#1

Кто работает с векторным изображением? Как изменить размер например и возможно это вообще а то я например вставляю в tabBarItem а изображение на пол экрана вылезает.


#2

Вы сделали их элементом таббара? Если да,то посмотрите разрешения в GUI от Apple. Если нет,то уточните или скриншот приложите в тему


#3

Изображение где? В билдере или симуляторе?
Если в билдере, то это баг из-за которого я долго время заставлял пользователей смотреть на ужасное разрешение иконок )))
Когда выбирал иконки для таббара, то естественно думал, то в билдере должно быть всё тип-топ. И, исходя их этого, подбирал разрешение, чтобы иконка влазила на бар в билдере. Как оказалаось потом путём случайного тыка )) выяснил, что:
для 1х это - 48х48рх (хотя это уже неактуальное разрешение)
2х - 64х64рх
3х - 96х96рх

Несмотря на то, что иконка в билдере может выглаядеть в 2 раза больше, в симуляторе и на реальном устройстве будь всё ок


#4


С самой картинкой вроде все нормально а вот с размером все печально


#5


вот ерунда такая не знаю что и делать


#6

#7

да это все правильно просто векторным изображения должно быть пофиг на все эти размеры я просто все сайты всегда только на векторе делал и привык к нему а тут ерунда какая та придется свой мастерить TabBar из обычных кнопок и картинок


#8

Это не совсем верно, тк опытном путём выяснил, что можно в 3 раза качественнее иконки вставлять, просто билдер глючит. Те разрешения, что указаны в ссылке очень маленькие и будут ужасно смотреться в реале.


#9

а может быть такое что Svg Фиговое ? или какой то определенный файл надо чтоб масштабировался, просто проект не маленький, не одна страница и иконок много будет и например если 50 иконок то залить надо 150 :joy:


#10

Я так-то не особо уверен: а вектор норм вставляеся в проект и работает? Эппле везде пишет про разрешение и .png, ну я только .png и использую… :smile:


#11

используй PDF и не будет проблем.


#12

первобытное решение картинка вставлять так как они не масштабируется занимают много и качество у них не очень я просто web занимался ощутил это что такое картинки они прогружаются долго могут вообще не прогрузится плюс если ее уменьшаешь она портится, если увеличивается портится, одни минусы короче. А SVG прям в страницу встраивается по этому чтоб она не загрузилась это не знаю что делать плюс анимацию иконки можешь сделать и менять и свет и что хочешь, а обычное приходится в 33 трех цветах рисовать и в разных размерах, решение конечно в шрифты еще иконки вставлять но это тоже решение минусовое так как браузеры по разному шрифты принимают и отображают,


#13

Да вот именно что стандартный SVG не поддерживает пробовал через PDF даже через айполовский формат)))) одна и та жа ерунда либо не видит либо отображает как показал на скриншоте, может я не так настроил картинку масштабирование убрал например фиг знает в чем проблема, Если есть желание скинь плиз строчку кода как добавляешь картинку. Вот у меня например вот так “page.tabBarItem.image = UIImage(named: “cube”)” .


#14

Можно sketch использовать. :thinking:


#15

Через Sketch SVG легко делается в PDF и все работает как надо.
Единственное, вам скорее всего нужно указать размер иконок для tabBarItem


#16

Спасибо большое что помогаете но я так и не понял как этот размер устанавливать и вообще как все делать, я и 33 примера посмотрел и что только не перепробывал и с цветами поигрался и с размерами самого бара и так так далее а на UIImage не понял как размеры ставить, а так конечно язык прикольный не привычно правда после web. Но буду изучать. Хорошо бы еще исходники какие нибудь простенькие найти чтоб посмотреть как реализована да и как писать надо а то сам понимаешь неделю пишу только хоть и получается кой как но лучше знать как правильно


#17

Для этого на этом сайте есть курсы. Возьмите подписку на месяц и посмотрите хотя бы такие курсы:

  1. “Гид по языку”
  2. “UIKit”
  3. “Первое приложение”
  4. “Приложение на основе TableView”

Ну и перевод документации, как азбука - всегда рядом должна быть :slight_smile:

Этого вполне хватит для начальных потребностей на 90-99%


#18

Да и так многое понятно и документации без курсов хватает, просто есть такие нюансы которые и в курсах не расскажут, да и все кодом пишу, storyboard не пользуюсь, также наткнулся на видос от этого форума где вектор с растровым изображением сравнивают, да и сама суть писать писать UIKIT проста так как тебе даже думать выдумать не чего не надо за тебя у же все придумали, написали просто добавляешь функции, классы, значения и так далее и все уже отображается и работает. Я за пять дней в принципе сделал авторизацию, меню, таблицы с переходом на страницы и прочую ерунду одно так и не понял насчет картинок но это оставлю на потом так как пока не мешает и есть чем заняться,


#19

вот решения ребята :sunglasses:

функция:
func svgImage (image: String, width: Int, height: Int) -> UIImage {
let imgs : UIImage = UIImage(named: “(image)”)!
let size = imgs.size
let uSize = CGSize(width: width, height: height)
let uWidth = uSize.width / imgs.size.width
let uHeight = uSize.height / imgs.size.height
var newSize: CGSize
if uWidth > uHeight {
newSize = CGSize(width: size.width * uHeight, height: size.height * uHeight)
} else {
newSize = CGSize(width: size.width * uWidth, height: size.height * uWidth)
}
let rect = CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)
UIGraphicsBeginImageContextWithOptions(newSize, false, 0)
imgs.draw(in: rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}

применение:
tabBarItem.image = svgImage(image: “database”, width: 30, height: 30)


#20

Форматируйте текст для удобства его чтения