Лучше использовать CGRectGetHeight (view.bounds) или view.bounds.size.height непосредственно в Objective-C
Я не могу найти, где я его прочитал, но я помню, что натолкнулся на то, что предлагало лучше получить высоту CGRect
с помощью CGRectGetHeight(rect)
вместо доступа к переменной через rect.size.height
CGFloat height = CGRectGetHeight(self.frame);
// vs
CGFloat height = self.frame.size.height;
В большинстве случаев это связано с представлениями в моем использовании, и мне было интересно, существует ли реальная разница (кроме синтаксиса), которая разделяет эти две строки кода.
Если кто-то предпочтительнее другого, объяснение, почему было бы здорово!
Ответы
Ответ 1
Структуры CGRect могут сохранять высоту и ширину в отрицательных значениях, а CGRectGetHeight
всегда возвращает положительную. В Swift 3.0 CGRect.height
свойство должно использоваться вместо CGRectGetHeight
.
CGRect.height
Независимо от того, сохраняется ли высота в данных CGRect структуры как положительное или отрицательное число, эта функция возвращает как будто прямоугольник был стандартизован. То есть результат никогда не отрицательное число.