У меня есть scrollview> ContentView> Настройка TextLabel, где появляется градиент, но не работает, как я этого хочу. Это чистый фон scrollView, поэтому все, что я ищу, - это прозрачная градиентная маска над текстом. I found something похоже на Я ищу в Objective-C, но этот поток не имеет решения Swift.Gradient at Top/Bot of Scrollview Когда есть дополнительный контент
Моя конечная цель кажется чем-то, что может использовать большинство людей, поэтому я удивлен, что еще нет версии Swift. Функциональность, которую я пытаюсь выполнить, заключается в следующем:
- Иногда текст прекрасно вписывается в фиксированный размер scrollView, поэтому градиент не должен быть.
- Когда текст длиннее, чем может поместиться, и поэтому некоторые из них находятся ниже нижней границы прокрутки, нижняя часть представления должна исчезнуть, чтобы очистить.
- Как только пользователь прокручивается вниз, а верхняя часть должна исчезать, указывая на то, что выше.
Я попробовал этот код, чтобы справиться с пулей # 2:
let gradient = CAGradientLayer()
gradient.frame = self.bio_ScrollView.superview!.bounds ?? CGRectNull
gradient.colors = [UIColor.whiteColor().CGColor, UIColor.clearColor().CGColor]
//gradient.locations = [0, 0.15, 0.25, 0.75, 0.85, 1.0]
gradient.locations = [0.6, 1.0]
self.bio_ScrollView.superview!.layer.mask = gradient
Но она исчезает все, включая кнопку под ним, что явно не в Scrollview:
Если я удаляю .superview и применяю его непосредственно к scrollView, он просто угасает весь текст ниже начальной части, которая была видна:
Кто-нибудь знает что-либо о том, как правильно реализовать это?
Работал для меня, как только я добавил расширение UIScrollView для использования свойства isAtTop. http://stackoverflow.com/a/14745900/4228969 – toddg