Короткий ответ - то, что это невозможно, потому что константы имеют значение .
, Например, я мог бы записать функцию, которая работает в O((n^3/k) + n^2)
. Это упрощает до O (n^3), потому что как n бесконечность подходов, эти n^3
термин будет доминировать над функцией, независимо от константы k
.
Однако, если k
является очень большим в вышеупомянутой функции в качестве примера, функция, будет казаться, будет работать в почти точно n^2
до некоторой точки перехода, в которой эти n^3
семестр начнет доминировать. Поскольку константа k
будет неизвестна любому профильному инструменту, будет невозможно знать как большой набор данных тестировать целевую функцию с. Если k
может быть произвольно большим, Вы не можете обработать данные тестирования для определения большого о времени выполнения.
Если вам нужен эффект - = 100
, просто сделайте:
CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
Тогда вы можете быть уверены, что меняете именно то, что вы хотите изменить ...
Кроме этого, я не думаю, что есть способ ...
Не существует свойства для прямого управления высотой.
Обратите внимание, что каждый раз, когда вы вызываете view.frame, он вызывает метод, поэтому ваш код эквивалентен:
view.frame = CGRectMake([view frame].origin.x, [view frame].origin.y, [view frame].size.width, [view frame].size.height - 100);
Примите во внимание вместо этого настройте фрейм в отдельной переменной:
CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
Используйте эту категорию UIView+position
, чтобы получить удобный доступ к свойствам членов фрейма: