#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?