Аўтаматычнае змяненне кадра UILabel пры анімацыі кадра (памеру) бацька UIView

У мяне ёсць бацькоўскі UIView, які мае даччыны UIView (UILabel выкарыстоўваецца ў кодзе ніжэй), чыя рама ўсталёўваюцца ў межы аднаго з бацькоў і чый autoresizingMask ўсталяваная на гнуткую шырыню і вышыню:

UIView* parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
UILabel* childLabel = [[UILabel alloc] initWithFrame:parentView.bounds];
childLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
childLabel.textAlignment = UITextAlignmentCenter;
childLabel.text = @"Hello";

Я хачу, каб мець магчымасць аніміраваць кадр бацькоўскага віду ў прыватнасці, яго памеру, і маюць подтаблицы памеру як частка анімацыі:

[UIView animateWithDuration:1.0 animations:^{ parentView.frame = CGRectMake(0, 0, 160, 240); }];

У выніку гэтай анімацыі я хацеў бы, каб тэкст UILabel аніміраваць разам з анімацыяй бацькоўскага выгляду, так што візуальна вы бачыце тэкст пераход ад Цэнтраваць ў пункце (160, 240) да (80, 120). Аднак, замест таго, каб аніміраваць гэта з'яўляецца рамка ў падвід ў цяперашні час адразу усталёўваецца значэнне павінна мець у канцы анімацыі, так што вы бачыце становішча тэксту адразу скакаць, калі пачынаецца анімацыя.

Ці ёсць спосаб, каб атрымаць падвіды да AUTORESIZE як частка анімацыі?

14

1 адказы

Я не зусім мне галаву вакол таго, што адбываецца, але я думаю, што асноўная праблема ў тым, што UIKit не хоча, каб паўторна адлюстроўваць тэкст кожны кадр анімацыі, так што змесціва UILabel ня анимируемым , Па змаўчанні, contentMode ўласцівасць UILabel з'яўляецца UIViewContentModeRedraw, што азначае, што ён будзе перамалёваць UILabel на памер мэты, як толькі ўласцівасць ўстаноўлена.

Калі змяніць contentMode да UIViewContentModeCenter, змесціва не будзе перамалёваць і будзе заставацца цэнтрам у UILabel.

childLabel.contentMode = UIViewContentModeCenter;
20
дададзена
дастаткова Great !! Дзякуй!
дададзена аўтар Kjuly, крыніца
Гэта вялікая інфармацыя. UIViewContentModeCenter працуе для таго, што я на самой справе трэба - для тэксту, каб заставацца ў цэнтры кадра, а бацькоўскага выгляду з'яўляецца скарачэнне або расце. Дзякуючы.
дададзена аўтар Shane Arney, крыніца