Я экспериментирую с использованием cagradientlayer для рисования градиентов в нашем приложении вместо того, чтобы иметь подкласс uiview, управляют градиентами. Одна путаница, с которой я столкнулся, - то, что, когда представление, которое имеет градиент как подуровня его основного слоя, изменено для установки данным, я пытаюсь показать, слой не изменяет размер наряду с ним. Я заканчиваю тем, что имел конец слоя градиента в размере кадра, в то время как кадр моего представления намного больше.
Существует ли способ иметь подуровня, автоизменяют размер для установки кадру его суперслоя или кадру представления суперслоя?
Реализуйте layoutSubviews в подклассе вашего представления. Она вызывается при изменении размера рамки (или при вызове setNeedsLayout). Просто установите рамку слоя в границы представления:
-(void)layoutSubviews
{
someSubview.frame = self.bounds; // make the subview frame match its view
}