Обе эти строки неверны с точки зрения Swift.
То, что вы спрашиваете, в чем разница между ними:
var button1: UIButton = UIButton()
var button1 = UIButton()
Swift имеет вывод типа, который по сути является механизмом, который позволяет опускать тип при объявлении переменной, если она инициализирована. Обе линии равны, вторая просто использует этот механизм.
Если вы попытаетесь сделать что-то подобное
var button2: UIButton = String()
Вы получите сообщение об ошибке, потому что : UIButton
является аннотацией типа для переменной, в которой говорится, что «button2 class is UIButton», и вы пытаетесь присвоить ей строку.