Переопределение layoutSubViews: случайным образом вызывает "CGAffineTransformInvert: особая матрица" - PullRequest
16 голосов
/ 19 сентября 2011

Я переопределяю layoutSubViews: в UIScrollView, и время от времени я получаю "CGAffineTransformInvert: особую матрицу" для каждого подпредставления, которое я перемещаю. Макет выглядит совершенно нормально, однако. Приложение также не падает.

Кто-нибудь знает, что вызывает это?

Ответы [ 4 ]

30 голосов
/ 10 октября 2011

Однажды у меня была эта ошибка, причина по ошибке была установка шрифта с размером 0 при использовании

[UIFont fontWithName:size:] 

для UILabel.

16 голосов
/ 30 июня 2012

В случае, если кто-то еще борется с этим (и если это не из-за установки размера шрифта метки равным 0), "CGAffineTransformInvert: особая матрица", кажется, появляется, когда layoutSubViews: выполняется в представлении (например, UIScrollView или UILabel) с размером кадра (0,0).

У меня ушло навсегда, чтобы понять, потому что если ваш контейнерный вид (например, вид прокрутки) не настроен на клип подпредставлений,макет все равно будет выглядеть хорошо.

4 голосов
/ 08 октября 2012

Я также видел эту проблему, когда я добавил UIWebView в свой self.view.

Код ошибки:

UIWebView *wv = [[UIWebView alloc]init];

и решение:

UIWebView *wv = [[UIWebView alloc]initwithFrame:[[UIScreen mainScreen]bounds]];

или любой размер кадра, кроме 0.0.

0 голосов
/ 23 апреля 2013

В моем приложении я получил эту ошибку, так как забыл вызвать -layoutSubViews суперкласса в переопределенном методе -layoutSubViews,

, поэтому вызовите [super layoutSubViews] в любой точке вашего переопределенного метода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...