Вам необходимо адаптивно изменить размер ячейки, иначе размер не будет работать для всех размеров экрана.
У вас есть функция, где вы возвращаете размер ячейки:
return CGSize(width: 182, height: 275)
Вместо этого сделайте его адаптивным, как это:
return CGSize(width: self.view.frame.width / 3, height: self.view.frame.height)
Или, чтобы иметь промежуток между ними, создайте смещение:
let offset = 10
let width = self.view.frame.width - offset * 4 // 4 gaps
let height = self.view.frame.height - offset * 2 // 2 gaps
return CGSize(width: width / 3, height: height) // Divide into equally-sized cells
Конечно, self.view
можно заменить любым контейнером, в который вы хотите поместить ячейки.