Неверная высота табличного представления с 64-битными устройствами

У меня действительно странная проблема. С 64-битными Устройствами я всегда искажаю неправильную высоту ячейки. На 32-битных устройствах выглядит правильно:

введите описание изображения здесь

На устройствах с 64-битной архитектурой это выглядит так:

введите описание изображения здесь

Это моя функция, и ДА, я изменил ее с float на CGFloat после того, как выпущены 64-битные устройства.

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { GFBlockTableRowItem* row = [self.blockTable.tableRows objectAtIndex:indexPath.row]; CGFloat maxHeight = 0.0f; for (NSUInteger i=0; i<row.tableColumns.count; ++i) { NSString* widthValue = [self.blockTable.tableColWidths objectAtIndex:i]; CGFloat percentage = widthValue.integerValue/100.0f; NSString* string = [row.tableColumns objectAtIndex:i]; CGSize constraint = CGSizeMake(self.frame.size.width*percentage, FLT_MAX); CGSize size = calculateSizeWithInsets(string, self.defaultCellFont, constraint, GTDefaultTableEdgeInsets); maxHeight = MAX(size.height, maxHeight); } LogDebug(@"height %li: %.3f", (long)indexPath.row, maxHeight); return maxHeight; } 

ИЗМЕНИТЬ 1:

 typedef NS_ENUM(NSInteger, GTVerticalTextAlignment) { GTVerticalTextAlignmentTop, GTVerticalTextAlignmentCenter, GTVerticalTextAlignmentBottom }; /**top, left, bottom, right*/ static UIEdgeInsets GTDefaultTableEdgeInsets = {0.0f, 0.0f, 0.0f, 0.0f}; static UIEdgeInsets GTDefaultTextViewEdgeInsets = {8.0f, 4.0f, 8.0f, 4.0f}; CGSize calculateSizeWithInsets(NSString *text,UIFont *font, CGSize size, UIEdgeInsets insets) { // GT_SIZE_CONSTRAINT_NONE CGSize constraint = size; UIEdgeInsets effective = UIEdgeInsetsMake((insets.top + GTDefaultTextViewEdgeInsets.top), (GTDefaultTextViewEdgeInsets.left + insets.left), (insets.bottom + GTDefaultTextViewEdgeInsets.bottom), (GTDefaultTextViewEdgeInsets.right + insets.right)); if (constraint.width != GT_SIZE_CONSTRAINT_NONE) { constraint.width = constraint.width - (effective.left + effective.right); } if (constraint.height != GT_SIZE_CONSTRAINT_NONE) { constraint.height = constraint.height - (effective.top + effective.bottom); } CGSize textSize = calculateSize(text, font, constraint); if (constraint.width == GT_SIZE_CONSTRAINT_NONE) { textSize.width += effective.left + effective.right; } if (constraint.height == GT_SIZE_CONSTRAINT_NONE) { textSize.height += effective.top + effective.bottom; } return textSize; } 

One Solution collect form web for “Неверная высота табличного представления с 64-битными устройствами”

В моем случае ниже использовался метод

 - (float)tableView: (UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath *)indexPath 

вместо этого обновленного метода.

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

В 64-битной архитектуре float следует заменить на CGFloat .

Interesting Posts

UIEdgeInsetsMake создает странную полосу в ячейке, и я не знаю, как ее исправить

Загрузка видео в Facebook с использованием FB SDK на iOS, удаление ориентации. Как это исправить?

Пользовательские смайлики UITextField (значки)

Как получить символ валюты из кода валюты для всех доступных мест в Swift?

Единый экземпляр AdMod во всех ViewControllers

Типы HTTP-аутентификации и как создать безопасную базу данных?

анимация с нижним колонтитулом UITableView. Просмотр при выполнении «beginUpdates» «endUpdates»

Скопировано представление в проект с контроллером навигации. Рамка для «Просмотр изображения» будет отличаться во время выполнения

Не удалось загрузить файл в приложении iOS; Ошибка какао 260

Встроенный код Appledoc в панели быстрого доступа Xcode?

CoreData: ошибка: серьезная ошибка приложения. Исключение было обнаружено при обработке данных Core Data

Ошибка при попытке отключить MagicalRecord с помощью CocoaPods 0.38

iOS – загрузка Dropbox в папку «App Folder»

UIProgressView отображает проблемы в iOS 7

Пытался получить веб-замок из потока, отличного от основного потока или веб-потока. Сбой сейчас

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.