2009-11-26 8 views
1

Я новичок в Objective C, а также в среде разработки iPhone и Mac в целом. Мне нравится объектная модель - мне требуется около 20 лет, когда я впервые начал программирование OO в том, как реализуются объектные методологии. Похоже, что многие из основ были потеряны в последующие годы, и в некоторой степени это намного более чистая среда.Как создать объект UITableview iPhone вручную

Изучение языка и xCode - это еще одна история, хотя у меня еще нет руки IB, и, честно говоря, я не нахожу ее интуитивной.

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

Но до сих пор я не видел очень много примеров того, как манипулировать объектом UITableView для размещения на представлении. В любом случае ничего нельзя использовать. В документации Apple есть некоторые пункты обсуждения, но это не то, что я хотел бы сделать как практический рабочий пример.

Есть ли у кого-нибудь такие примеры, пожалуйста?

Заранее спасибо за любые и все вклады

ответ

1

Чтобы создать свой собственный UITableView просто создать экземпляр класса, и добавить его в свой зрения ViewController в. (IB просто делает это для вас). Это то же самое с любым встроенным объектом, который является подклассом UIView.

UITableView *tableView = [[UTableView alloc]init]; 
[[self view] addSubview:tableView]; 

Там очень много других вещей, которые вы должны сделать, как установить на frame собственности так он заполняет вид вы добавляете его тоже, и установить стиль и все остальное.

Лучше всего читать на Table View Programming Guide затем посмотреть через UITableView Class Reference

примечание стороны: Вы должны действительно просто использовать IB, когда вы можете. Это экономит много головных болей и времени, и как только вы поймете, что это просто спасение ваших строк кода, которые вы должны поддерживать, вам понравится!

+0

Спасибо; который дал мне отличное начало. Теперь я пытаюсь получить данные. Оставайтесь на связи. :) Руководство по программированию таблиц - это документация, о которой я упоминал в своем оригинальном посте. Это, наверное, только я, но я действительно не считаю, что этот документ будет настолько ясным или полезным. Это скорее ссылка, чем какой-то пример того, как все может быть сделано в практическом смысле. Еще раз спасибо за помощь. – Redback

1

Вы плаваете вверх по течению. Научитесь использовать интерфейс Builder, чтобы сделать вашу жизнь проще. Посмотрите на этом уроке, и вы должны начать понимать его немного лучше:

iPhone Application Example

Кроме того, я настоятельно рекомендую Erica Sadun-х iPhone Developer's Cookbook. Второе издание должно быть доступно в декабре. Просто купите его. Вы не пожалеете.

+0

Привет, Мэтт, и спасибо. Я еще не убежден, что использование IB упростит ситуацию. :) Я упрямый старый пердит, и я предпочитаю передавать вещи, особенно на ранних этапах обучения нового языка. Мне нравится, когда мои руки грязны под капотом, и, таким образом, я нахожу, что понимаю гораздо большее понимание того, что происходит на самом деле. – Redback

+0

Вот почему я рекомендую книгу Эрики. Она показывает, как делать вещи программно. Однако я еще раз предостерег вас, что чем скорее вы преодолеете упорство, тем быстрее вы станете гораздо более продуктивным. Раньше я был программистом Windows. Я попытался подогнать Mac/iPhone в парадигму, которую я уже знал. Это была плохая идея. Просто слово к мудрым и наилучшим пожеланиям. ;-) –

+0

Мэтт, я ценю вашу честность и опыт. Мой фон возвращается назад, за пределы Windows, за пределами DOS; Я работал над некоторыми большими железными системами. Я также работал над Palm (вернемся к устройствам V1) и Windows CE (да, хорошо, Windoze Immobile) и снова вернемся к устройствам V1. Речь идет не столько о обучении в парадигме, которую я знаю, сколько о том, что нужно - нужно - понять язык, его конструкции и то, как все будет представлено программно, и с этой базы я затем смогу понять, как инструменты будут работать для меня. Приветствия. – Redback

1

Для примера приложения, которое программно создает все его представления, я могу направить вас к исходному коду моего приложения Molecules. Слишком мало смысла вручную создавать UITableViews, потому что вы захотите управлять ими через UITableViewControllers.

Как указывает Мэтт, использование Interface Builder, вероятно, является предпочтительным способом сделать это сейчас. Я изначально написал это приложение, когда Interface Builder был менее работоспособен, чем сегодня. Тем не менее, я видел очень небольшое сокращение времени запуска приложения при использовании иерархии представлений, полностью сгенерированной в коде, против одного десериализованного из NIB.

+0

Brad, Я видел и загружал ваше приложение в прошлом, и это действительно отличное приложение. Я быстро просмотрел код, и он очень всеобъемлющий. Я уверен, что я собираюсь многому научиться из вашей работы, но мне понадобится день или три, чтобы просто читать и усваивать все это, не говоря уже о том, как все это висит вместе. Большое спасибо; ваши усилия очень признательны. – Redback

+0

О да, еще одна вещь, пожалуйста. Вы сказали: «У вас мало смысла вручную создавать UITableViews, потому что вы захотите управлять ими через UITableViewControllers». Не могли бы вы рассказать об этом для меня немного? Я читаю это немного иначе, чем другие комментарии, которые предполагают, что я просто использую IB, потому что он есть. Кажется, вы предлагаете что-то немного другое, и я хотел бы понять ваши дальнейшие мысли по этому поводу. – Redback

+0

Какао сильно зависит от шаблона проектирования MVC. UITableViewController предоставлен для вас как класс контроллера для управления логикой вокруг представления таблицы, и он обрабатывает создание и отображение табличного представления для вас. Вы обнаружите, что Cocoa Touch архивируется таким образом, что более чистое работать с контроллерами представлений для полноэкранных представлений, а не самих представлений. –

Смежные вопросы