На данный момент невозможно завершить его за один звонок.
Как уже упоминалось, наименьший шаг вызова - создать скрипт для получения всех репозиториев (сохранить репозитории в переменной), а затем в цикле использовать az acr repository show-tags
для получения их тегов.
Те же сценарии, что и удар:
result="$(az acr repository list -n ACR_name --output tsv)"
for i in $result; do az acr repository show-tags -n ACR_name --repository $i; done
Результат теста, как показано ниже:
drawRect () потянет к внеэкранному буферу. Вы не должны перерисовывать время, регионы "повреждены" серовато-синие, поскольку iPhone OS заботится об обработке разделения на уровни представлений. Вы просто пишете однажды в буфер и позволяете ОС обработать остальных. Это не похоже на другие среды программирования, где необходимо продолжать перерисовывать каждый раз, когда что-то передает по представлению.
Всегда будьте готовы потянуть соответствующую область своего представления когда drawRect:
назван.
Хотя система может буферизовать Ваше представление, которое только избежит drawRect:
от того, чтобы быть вызванным. Если по некоторым причинам, система должна делать недействительным буфер, Ваш drawRect:
метод может быть вызван снова. Кроме того, drawRect:
будет вызван для различных областей Вашего представления, поскольку они становятся видимыми в результате прокрутки и других операций, которые влияют на видимость областей Вашего представления.
Часть беспорядка между различными ссылками Какао прибывает из введения поддержанных слоем представлений в Leopard. На iPhone поддерживаются слоем все UIViews, где в Leopard представления должны вручную включить поддержку слоя.
Для поддержанного слоем представления содержание оттянуто однажды использующий независимо от того, что Вы предоставили в drawRect()
, но затем буферизуется на слой. Слой действует как прямоугольная структура, поэтому когда Вы перемещаете поддержанное слоем представление или покрываете его, никакая перерисовка не необходима, структура просто перемещена в то местоположение через GPU. Если Вы не устанавливаете needsDisplayOnBoundsChange property
кому: YES
для слоя, изменяя размер слоя (или его содержание представления) будет просто масштабировать содержание. Это может привести к расплывчатой графике в рамках Вашего представления или слоя, таким образом, можно хотеть вызвать перерисовку в этом случае. setNeedsDisplay
инициирует ручную перерисовку контента представления или слоя и последующее перекэширование того содержания в слое.
Для оптимальной производительности предложено постараться не иметь частые вызовы к drawRect
, потому что Кварцевый рисунок и перекэширование в слое являются дорогими операциями. Лучше пытаться сделать анимацию с помощью отдельных слоев, которые можно переместить или масштабировать.
Основанные на какао ссылки Вы видели, что касаются рабочего стола, могут принять представления non-layer-backed, которые действительно называют drawRect: любое время представление должно быть обновлено, является ли это от перемещения, масштабирования или наличия части затененного представления. Как я сказал, все UIViews поддерживаются слоем, так дело обстоит не так на iPhone.
Тем не менее для Вашего приложения рисунка, один способ сделать это состоял бы в том, чтобы поддержать массив рисованных объектов и назвать drawRect: каждый раз пользователь добавляет что-то новое, выполняя итерации по каждому из ранее рисованных объектов в порядке. Я мог бы предложить альтернативный подход, где Вы создаете новый UIView или CALayer для каждой операции рисования. Контент той операции рисования (строка, дуга, X, и т.д.) был бы оттянут отдельным представлением или слоем. Тем путем Вы не должны будете перерисовывать все на новом касании, и Вы смогли делать некоторое аккуратное редактирование векторного стиля путем перемещения каждого из оттянутых элементов вокруг независимо от других. Для сложных рисунков мог бы быть определенный компромисс памяти в этом, но я держал пари, что он будет иметь намного лучшую производительность рисунка (минимальное использование ЦП и мерцание).