Я хочу создать протокол, который может быть согласован только UIlabels и UIButton, есть ли способ?
Какой может быть только для этого?Не напрямую, нет.Вы не можете навязать другому программисту такой контракт, чтобы программист не мог заставить какой-то другой класс принять ваш протокол (например, заставить компилятор жаловаться, если это произойдет).
Но, возможно, вы имеете в виду, какой является только «соответствующим» (т.е. принятым).В таком случае, конечно.Ничто не мешает вам объявить протокол и затем объявить себя , что UILabel и UIButton do примут его (и не заявят, что другие классы его примут).Просто сделай это.