Какао + CoreAnimation: анимированный список пользовательских подпредставлений - PullRequest
2 голосов
/ 10 мая 2011

Я уже несколько недель пытаюсь сделать это правильно, и хотя я многому научился из-за пропусков зажигания, на данный момент мне просто нужно решение. Проблема заключается в распаковке, казалось бы, перекрывающихся графических объектов и API-интерфейсов пользовательского интерфейса, включенных в Cocoa, многие из которых дают схожие эффекты, но имеют уникальные ограничения, которые я часто обнаруживал только после того, как вложил много часов в реализацию.

Я новичок в Какао, но не в программировании, и я пытаюсь создать приложение для Mac с очень настраиваемым пользовательским интерфейсом - например, Capo, Garageband или Billings. Один вид в моем окне будет отображать упорядоченный список подпредставлений, каждый из которых выполняет много пользовательских чертежей, и каждый из них должен поддерживать «выбранное» состояние и изменение порядка перетаскивания. Подвиды не должны поддерживать, что их перетаскивают за пределы суперпредставления.

В идеале, перетаскивание даст анимированную обратную связь, как это происходит, подталкивая соседние взгляды братьев и сестер, чтобы освободить место, например. значки панели инструментов или панель закладок Safari. Проблема в том, что я, кажется, не могу получить правильный набор технологий, чтобы сделать это правильно. Я сделал подпредставления как подклассы NSView в NSCollectionView, а также как CALayers в настраиваемом подобном CollectionView NSView, и ни один из них, похоже, не предлагает идеального решения. Тем не менее, первый вариант кажется лучшим из двух за превосходную обработку событий мыши.

Я еще не пытался сделать это как TableView, и я не хочу идти по этому пути без какого-либо указания, что я на правильном пути. Обширный поиск в Google показал только, что нет никаких современных ресурсов по переупорядочению или перетаскиванию с поддержкой CoreAnimation. В качестве такой стандартной функции OS X UI, я чувствую, что это должно быть проще!

Буду весьма признателен за любую помощь в отношении того, какие инструменты подходят для этой работы. ТИА.

...