Ответ 1
Я когда-то ошибочно ошибался, устанавливая шрифт размером 0 при использовании
[UIFont fontWithName:size:]
для UILabel.
Я переопределяю layoutSubViews:
в UIScrollView
, и время от времени я получаю "CGAffineTransformInvert: сингулярная матрица" для каждого перехвата subview I. Однако макет выглядит вполне нормально.
Приложение также не разбивается.
Кто-нибудь знает, что вызывает это?
Я когда-то ошибочно ошибался, устанавливая шрифт размером 0 при использовании
[UIFont fontWithName:size:]
для UILabel.
В случае, если кто-то борется с этим (и в случае, если это не из-за установки размера этикетки шрифта до 0), "CGAffineTransformInvert: вырожденная матрица", кажется, выходит, когда layoutSubViews:
работает на представлении (например, UIScrollView
или UILabel
), который имеет размер кадра (0,0).
Я навсегда понял, что если представление контейнера (например, просмотр прокрутки) не настроено для просмотра подкадров, макет все равно будет выглядеть нормально.
Я тоже видел эту проблему, когда я добавил UIWebView в свой self.view.
Код нарушения:
UIWebView *wv = [[UIWebView alloc]init];
и решение:
UIWebView *wv = [[UIWebView alloc]initwithFrame:[[UIScreen mainScreen]bounds]];
или любого кадра, кроме 0.0.
В моем приложении я получил эту ошибку, поскольку забыл вызвать -layoutSubViews суперкласса в переопределенном методе -layoutSubViews,
поэтому сделайте вызов [super layoutSubViews]
в любой точке вашего переопределенного метода