#ios #cocoa-touch
#iOS #cocoa-touch
Вопрос:
У меня есть пользовательский класс tableViewCell, который имеет UIImageView
в качестве IBOutlet
.
@property (nonatomic, weak) IBOutlet UIImageView * waveformImageView;
У меня также есть два контроллера просмотра: один с TableView и один без TableView.
Мне нужно знать высоту и ширину этого UIImageView
для отправки в другой класс для выполнения вычисления в моем контроллере представления, отличном от TableView
Я попытался выполнить следующее в моем заголовочном файле моего контроллера просмотра (контроллер просмотра без TableView)
@property (nonatomic, strong) OSAudioTableCell * tableCell;
а затем доступ к UIImageView
свойству, выполнив следующее в одном из моих методов:
self.tableCell = [[OSAudioTableCell alloc] init];
[self.waveView setSize:self.tableCell.waveformImageView.bounds.size];
Все это делается в моем контроллере просмотра, который не содержит TableView. Я почти уверен, что делаю это неправильно, поскольку ширина и высота равны нулю. Я могу нормально получить эти значения в моем контроллере просмотра, который содержит мой TableView.
Комментарии:
1. ваш код просто создает новую, пустую ячейку таблицы, поэтому вы получаете 0. Вам нужно использовать
cellForRowAtIndexPath:
метод в вашем tableview, чтобы получить нужную вам ячейку tableview, но вы не указали достаточно кода, чтобы показать, как вы переходите к view controller 2 для получения более подробного ответа2. Что ж, на следующем шаге используется вычисление для отображения UIImage, которое хранится в словаре, добавленном в массив. Затем я немедленно вызываю,
[self performSegueWithIdentifier:@"goToLibrary" sender:self];
который отправляет меня на мой контроллер представления с моим TableView, где я получаю доступ к словарю с изображениемcell.waveformImageView.image = [packageInArray objectForKey:@"waveImage"];
Возможно ли получить границы ImageView ячейки таблицы в моем контроллере представления, отличном от tableview? Все мое намерение состоит в том, чтобы выполнить вычисление до того, как я доберусь до TableView.3. Итак, вы запускаете переход из события выбора строки? Если это так, то, пожалуйста, покажите ваши методы
didSelectRow:atIndexPath:
иprepareForSegue
в вашем контроллере представления таблицы4. Нет, все это делается до того, как я перейду К контроллеру представления с моим TableView. Таким образом, событие выбора строки отсутствует.
5. Ну, если у вас нет ячеек с фиксированной высотой, вы не можете узнать высоту ячейки, пока не будет заполнено табличное представление — по крайней мере, вы не можете получить свойство height ячейки, поскольку ячейка не существует