NSTableView анимациямен айналдыруRowToVisible

Мен NSTableView және NSTableView төменгі жағына жылжу үшін әрекетті орындауға тырысамын. Мен scrollRowToVisible пайдаланамын, бірақ анимация болатын әрекетті ұнатамын. Мұны істеудің жолы бар ма?

7

4 жауаптар

NSTableView бағдарламасында айналдыру сипаты болмаса, тікелей тіркей аласыз, оның орнына NSTlipView өмір сүретін NSClipView элементінің жылжуын анимациялауға болады.

Мүмкіндігінше, егер бұл мүмкіндікті мүмкін болса, оны (ортасында NSTableView кіші) кластерді жандандыру үшін rowIndex, мүмкіндігінше,

        NSRect rowRect = [self rectOfRow:rowIndex];
        NSRect viewRect = [[self superview] frame];
        NSPoint scrollOrigin = rowRect.origin;
        scrollOrigin.y = scrollOrigin.y + (rowRect.size.height - viewRect.size.height)/2;
        if (scrollOrigin.y < 0) scrollOrigin.y = 0;
        [[[self superview] animator] setBoundsOrigin:scrollOrigin];
22
қосылды
Кем дегенде Cion Анимация және Core Image сүзгілерімен біріктірілген кезде сынған көрінеді. Мен NstonableView-ді жылжытуға тырысамын және бірден бірнеше экранды жылжытқанда мазмұн боялмайды.
қосылды автор Ivan Vučica, көзі
Мен мұны керемет көремін!
қосылды автор keegan3d, көзі
Бұл жақсы жұмыс істеді! Міне, мен сол идеяны ойлап таптым, бірақ сәл өзгеше. Сондай-ақ, Lion-дегі айналдыру жолақтарын жыпылықтайды: gist.github.com/1558664
қосылды автор keegan3d, көзі
Бұл менің NSTableView бағдарламасының төменгі жағына ALL жолын айналдырған жалғыз код. Жалғыз ескерту - бұл NSDrawNinePartImage (бұрмалау және кескін глисцами) жақсы жұмыс істемейді. Мен NSImageViews көмегімен өзімнің тоғыз бөлік кескін әдісін қайта ойлап шығардым және ол мінсіз жұмыс істейді!
қосылды автор rocky, көзі
Мұнда бірдей мәселе. Кесте бос болады, содан кейін тағайындалған жолға жақын бірқатар жолдарды көремін. Бұл жылжу кезінде кесте көрінісінің тұрақты орналасуы секілді бұзылып, оны қайта өңдеуге болатын көрінеді.
қосылды автор martinjbaker, көзі

Егер сіз 10.8+ -ге бағытталған болсаңыз және кесте көрінісі қабатқа сүйенсе, мұны орындауға болады:

[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context){
    context.allowsImplicitAnimation = YES;
    [self.tableView scrollRowToVisible:someRow];
} completionHandler:NULL];
12
қосылды
Шебер сияқты жұмыс істейді!
қосылды автор paulmelnikow, көзі

Оңай емес, бірақ мен NSAnimation субклассы арқылы оған жақындадым және 0.0-тен 1.0-ке дейін жететіндіктен, оны жылжыту үшін жалпы айналдыру қашықтығымен көбейтіңіз және біртіндеп жылжу әрекетін көрсету үшін scrollToPoint деп іздеңіз. Бұл теорияда жұмыс істеуі керек, бірақ мен сколлжоу қалай жақсы жұмыс істейтінін білмеймін.

2
қосылды
setBoundsOrigin: секундына 60 рет қоңырау шалу, NSTableView үшін өзімнің жеке реттелетін механизмін іске қосқан кезде шынымен керемет нәтижелер береді. Кеңеске дұрыс бағытта рақмет.
қосылды автор sudo rm -rf, көзі

Бұл мүмкін емес сияқты көрінеді. NSTableView 10.6 дейін анимацияларды қолдамады. MasOSX10.7-нен бастап, сыныпқа қосылған кейбір қарапайым анимациялар. Жолдарды жаңа позицияларға енгізу, алып тастау және жылжытуға болады. Бұл әлі күнге дейін.

2
қосылды