Я бы пошел с UITableView и разделил бы на подклассы ячейки и поместил бы UILabels (для нередактируемых) или UITextView (для редактируемых) в качестве необходимого для создания требуемой компоновки столбцов. Я сделал это, и это работает хорошо. Просто убедитесь, что вы создаете подкласс ячейки и не пытаетесь добавлять метку или textView к ячейке при каждом вызове cellAtIndexPath. Это значительно снизит производительность.