Я использую autoLayout в представлении, и я хочу выполнить метод после размещения ограничений, потому что у меня есть изображение, и мне нужен реальный кадр.Метод выполнения iOS после того, как ограничения помещены в представление
Я пользуюсь iOS 8 SDK.
Это метод, который я хочу, чтобы выполнить
- (void)addGradientOverlayToQuestion {
CALayer *questionLayer = self.questionImage.layer;
CAGradientLayer *maskLayer = [CAGradientLayer layer];
maskLayer.colors = @[(id)([UIColor blackColor].CGColor), (id)([UIColor clearColor].CGColor)];
maskLayer.startPoint = CGPointMake(0, 0.7);
maskLayer.endPoint = CGPointMake(0, 1);
maskLayer.frame = questionLayer.bounds;
questionLayer.mask = maskLayer;
}
Я попытался
[self layoutIfNeeded]
[self addGradientOverlayToQuestion];
и это то же самое, и я попытался
[self.questionView layoutSubviews];
но изображение выглядит слишком большой ,
Любые идеи? Спасибо!
Не могли бы вы дать более подробную информацию. Ваш вопрос немного запутанный – Jeef
Как я могу узнать, что фрейм обновлен autoLayout? (В представлении) –
попытайтесь вызвать метод layoutIfNeeded, чтобы сделать ретрансляцию представлений соответствующим вашим ограничениям, и после этого попробуйте вызвать свой метод. Это должно работать –