Чтобы анимировать изменение границ слоя маски UIView: подкласс UIView, и анимировать маску с помощью транзакции CAT - аналогично ответу Kekodas, но более общего:
@implementation UIMaskView
- (void) layoutSubviews {
[super layoutSubviews];
CAAnimation* animation = [self.layer animationForKey:@"bounds"];
if (animation) {
[CATransaction begin];
[CATransaction setAnimationDuration:animation.duration];
}
self.layer.mask.bounds = self.layer.bounds;
if (animation) {
[CATransaction commit];
}
}
@end
I ' Я попытаюсь добавить свою информацию.
Насколько я понимаю, Google Closure - это не только еще одна библиотека JS, но и набор инструментов, которые позволят вам оптимизировать ваш JS код. Работа с jQuery дает вам хорошие инструменты и легкую библиотеку, но не уменьшает ваш собственный код. Компилятор Closure будет. Инспектор закрытия также может быть полезен, поскольку иногда минимизированный код ведет себя иначе, чем исходный, и отлаживать его сложно. Он интегрируется с Firebug и поддерживает модульные тесты, которые в настоящее время являются лучшими друзьями разработчиков.
Я предполагаю, что, поскольку любая новая библиотека VS хорошо зарекомендовавшая себя, ей будет не хватать доступности множество расширений и учебников, которые есть в jQuery. Однако, подталкивание Google должно гарантировать, что поддержка и надежность будут довольно хорошими. Текущая документация и учебник тоже кажутся действительно хорошими.
Однако возможности Closure выглядят достойно, и его модульная архитектура тоже многообещающая. Я предполагаю, что Google использует его для внутренних целей в течение длительного времени, а это означает, что вы можете ожидать, что все основные функции (и многое другое) будут реализованы, и, вероятно, очень оптимизированным и масштабируемым способом. Они пытаются представить его как STL JavaScript, поэтому им следовало бы его отполировать.
После более внимательного изучения функций кажется, что это может быть шагом вперед для разработки веб-приложений по сравнению с существующими библиотеками, такими как jQuery. . Полагаю, это приносит пользу внутренним разработкам в Google, но такие вещи, как определение онлайн-состояния (см. goog.events.OnlineHandler ), простая интеграция запросов AJAX и действий JS в историю браузера (см. goog.History ) или легионы предоставляемых ими замечательных виджетов (см. пакет goog.ui ) могут помочь всем нам создавать еще более потрясающие веб-приложения;)!
Он поставляется с функциями шаблонов , которые интегрируются с Java ( кто сказал GWT ?), так что это может быть еще одним плюсом для Closure.
Наконец, это выглядит довольно простым в использовании. Синтаксис может быть немного более подробным, чем у короткой функции $ jQuery, но с IDE и автозаполнением это не проблема. Более того, я бы сказал, что мы можем ожидать хорошей интеграции в IDE, таких как Eclipse, от Google.
EDIT: по запросу, Позвольте мне сказать несколько слов о ссылке на GWT. Google Web Toolkit - это библиотека Java, которая позволяет создавать веб-интерфейсы с поддержкой AJAX и генерирует (и оптимизирует) необходимый код JavaScript. Поскольку Google Closure позволяет создавать шаблоны, которые могут использоваться как на стороне клиента, так и на стороне сервера (с использованием JavaScript и Java), я предполагаю, что вскоре их можно будет использовать совместно (если это еще не так).
Библиотека закрытия Google позволяет компилировать и оптимизировать ваш JavaScript. Это не такая библиотека, как jQuery. jQuery - это то, что предоставляет вам функции, позволяющие быстрее писать собственный javascript.
Google Closure поможет свести к минимуму ваш собственный код javascript, чтобы обеспечить более быструю доставку через Интернет.
Короче говоря, Google Closure - это инструмент, а jQuery - это библиотека, похожая на Prototype.
В своем кратком обзоре API я обнаружил, что различия между jQuery и Closure разительны.
jQuery - это, по сути, просто упрощенный способ выполнения многих частых операций в перекрестном режиме. в браузере.
Closure - это очень новая структура, в которой они обеспечивают кросс-браузерный способ использования, например, тега
, а также добавили новые события.
Итак, это добавляет к тому, что мы обычно делаем с javascript, они берут много операций, которые люди хотят сделать, и помещают их в API.
Например, у них есть событие, чтобы узнать, изменилось ли состояние онлайн. Таким образом, вы можете определить, подключена ли система.
Возможно, я не получаю jQuery, но я не видел там настоящей коллекции виджетов пользовательского интерфейса (есть плагины, да, но вы никогда не знаете, насколько они хорошо протестированы, и часто они есть нет явного победителя и / или у плагина отсутствует документация).
Closure, помимо прочего, имеет коллекцию виджетов (см. вкладку демонстрации), включая, скажем, кнопки без изображения ], используемый в Gmail.
В целом, он имеет больше функций, реализованных как часть выпуска. Возможно, это не так уж и важно, но меня раздражает море плагинов jQuery, когда я ищу что-то столь же простое, как модуль истории ajax или автозаполнение.
В целом это огромная библиотека + набор инструментов, и я ' Я познакомлюсь с ним, чтобы узнать, что есть в наличии.
Я только что опубликовал довольно исчерпывающую статью о Google Closure, которая отвечает на этот вопрос на insideRIA .
... Closure rulez! ^ _ ^
Изменить : посмотрите это видео на YouTube , оно может лучше ответить на некоторые вопросы о Google Closure.
Вероятно, лучшими источниками информации о закрытии Google являются проект дискуссионная группа , вики, страницы документации, демонстрации и еще неоконченная книга Майкла Болина , которая теперь доступна в сафари-книгах. сайт.
одно могу сказать сразу - кривая обучения для закрытия
по сравнению с jQuery
более крутая, но это того стоит из-за обширности библиотеки, четкой организации и преимущество использования его вместе с компилятором и инструментом для создания шаблонов. Библиотека
closure
в этом отношении больше похожа на dojo
, чем на jQuery
, и, по словам Майкла Болина, некоторые концепции были заимствованы из dojo
.
компилятор закрытия Google использует систему документации JSDoc
, которая одновременно (если она создана программистом правильно) предоставляет документацию и позволяет обнаруживать множество ошибок во время компиляции.
в то время как имена функций более подробны, чем jQuery
, компилятор сжимает код (используя различные тактики оптимизации), и проверка типов значительно сэкономит время на отладку кода, поэтому время на ввод больше имена, вероятно, не проблема. В то же время более длинные имена добавляют удобочитаемости.
Библиотека поддерживает браузеры, работающие в режиме совместимости, так что сценарии могут быть встроены другими сайтами с использованием "необычного" html
. Библиотека работает с (но не зависит от) системой шаблонов javascript, называемой soy
что упрощает наполнение документов контентом.
вроде jQuery
google closure
позволяет обходить структуру dom с помощью строковых запросов с использованием специального компонента библиотеки. Библиотека
closure
полагается на пространства имен с разделителями-точками, больше как Java
- очень сильная организационная особенность.
использование таких пространств имен приведет к накладным расходам в некомпилированном коде, но в скомпилированном коде эти вещи заменяются короткими именами переменных.