iPhone: как переопределить макет ячейки после загрузки из NIB - PullRequest
0 голосов
/ 12 августа 2011

Я проектирую ячейку в IB и загружаю эту ячейку в UITableview, используя «loadNibNamed», и это удобно.

Но иногда я хочу иметь возможность переопределить некоторые из его макетов, когда это необходимо, например, еслиесть UILabel и UITextfield, я хочу иметь возможность, например, изменить ширину метки ... если я переопределяю этот макет ячейки, нужно ли мне снова определять все в этой ячейке, или я могу переопределить любой элемент управления, какой захочу.

А также как и каким способом я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 12 августа 2011

Вам необходимо объявить IBOutlets для тех элементов, которые вы хотите изменить. Например, если вы загрузили NIB с UIB-кнопкой, для которой вы хотите изменить текст где-то в вашем коде, вам нужно создать выход для этого элемента, например:

.h

@property (nonatomic, retain) IBOutlet UIButton *myButton;

.m

@synthesize myButton;

... Последний шаг - создать ссылку в Интерфейсном Разработчике между вашей торговой точкой и визуальным представлением кнопки. Один из способов сделать это - щелкнуть правой кнопкой мыши значок «Владелец файла» на левой панели. Вы должны увидеть «myButton» в списке торговых точек. Просто перетащите соединение от этого к фактическому UIButton на вашем представлении, чтобы связать его.

Теперь вы можете делать такие вещи в классе, в котором вы определили @property:

self.myButton.text = @"Button";
0 голосов
/ 12 августа 2011

Установите теги в intefacebuilder для объектов uikit, которые вы хотите изменить, например, uilabel.

В

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

, где вы устанавливаете вызов ячейки

[(UILabel*)[cell.contentView viewWithTag:YOURLABELSTAGHERE] setFrame:LABELSNEWFRAMEHERE];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...