Я строю арифметическое приложение &, в нем есть подклассы NSObject
для чисел и цифр. Оба из них имеют соответствующие объекты вида, которые принимают источник данных (номер или цифру) и делегат , контроллер вида.вид как свойство модели объекта альтернативный
Я обнаружил, что полезно использовать модель для совместной работы, чтобы задать вид цифр как свойство соответствующих цифр.
Например, класс Number имеет свойство NSMutableArray
, которое содержит его цифры.
Если я хочу, чтобы найти размер для соответствующего NumberView, я пишу может писать код, как это в контроллере:
-(void) updateNumberViewFrameSize:(ACNumberView*) sender
{
NSUInteger i;
float width = 0, height = 0;
for (ACDigit* digit in [sender.dataSource returnNumberViewDataSource].digitArray)
{
width += digit.digitView.size.width;
height += digit.digitView.size.width;
}
sender.frame = CGRectMake(sender.frame.origin.x, sender.frame.origin.y, width, height);
}
код прекрасно работает, но я чувствую, что это не хорошая практика, чтобы удерживайте этот указатель на представление из модели, даже если модель не использует его сама.
Если это плохая практика, каковы потенциальные ловушки, и есть ли лучший способ достичь этого типа конца?
Хороший пример, почему это неправильно. Можно ли получить доступ к его представлениям? – chartman
@chartman Да, с [view subviews]. –
Вы правы, гораздо лучше просто рассчитать размер представления для числа, основанного на том, что он должен хранить в нем, а не получать данные из представлений – chartman