Странная анимация UITableViewCell при смене кадра UITableView - PullRequest
1 голос
/ 22 января 2012

У меня есть приложение для iPhone, над которым я работаю, и оно работает так же, как sms.app. По сути, когда вы нажимаете на клавиатуру, tableView сжимается, чтобы соответствовать, когда отображается клавиатура. А когда вы щелкаете по нему, он скрывается, и TableView возвращается к своей первоначальной высоте.

Моя проблема заключается в том, что при изменении моего кадра UITableView на исходный размер ячейки, которые не были показаны и теперь имели странную анимацию, прежде чем она появилась. Я могу сказать в основном из-за изображений. Они начинают большие к центру, а затем изменяют размеры до того места, где должны быть. Это настройка в UITableView? Или это просто мой код?

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

// InitWithStyle
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];

cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];

// Add subviews here! EX:
// [[cell contenView] addSubview:theObject];

}

1 Ответ

0 голосов
/ 22 января 2012

Вы устанавливаете стиль UITableView дважды для двух разных стилей:

по умолчанию:

 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

и Подзаголовок:

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];`

установите его здесь в зависимости от стиляВы хотите и удалите другую.

if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

Итак, вы создаете новую ячейку, когда это необходимо, затем создаете другую ячейку другого стиля.

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