Доступ к пользовательскому свойству ячейки TableView вне tableview

#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 ячейки, поскольку ячейка не существует