пользовательская UITableViewCell другого размера

#iphone #objective-c #ipad

#iPhone #objective-c #iPad

Вопрос:

У меня есть класс, который является подклассом UITableViewCell. Эта ячейка будет использоваться в двух разных классах UITableViewController, один с размером 200×400 и один с размером 200×600. Вопрос в том, что мне нужно изменить в моей реализации? Могу ли я переопределить конструктор ячейки, чтобы я мог передавать ширину и высоту ячейки, которые я хочу? Если да, то как мне это сделать?

Ответ №1:

Поместите это в свой UITableViewCell-подкласс:

 - (void)setFrame:(CGRrect)newFrame {
    [super setFrame:newFrame];

    // perform operations using the new frame.
    // ex.: 
    // CGRect rect = self.label.frame;
    // rect.size.width = newFrame.size.width - 20.f;
    // self.label.frame = rect;
}
  

Комментарии:

1. Я также хотел бы настроить шрифт для ячейки большего размера, это другой метод?

2. Если вы знаете как высоту, так и размеры шрифта, вы можете добавить это в метод self.label.font = [UIFont systemFontOfSize:(newFrame.size.width == __firstHeight__)?__firstFontSize__:__secondFontSize__)];

3. Замените __...__ содержимое вашими собственными параметрами.

4. и затем в cellForRowAtIndexPath мне пришлось бы вызывать этот метод setFrame?

5. еще один вопрос: есть ли способ задать ширину пользовательской ячейки, чтобы она занимала все пространство, доступное в UITableView?