В соответствии с документацией для UIVIew @property(nonatomic) CGFloat alpha
Установка альфа на UIView устанавливает альфа на его подвидов, которые не должны произойти
Значение этого свойства представляет собой число с плавающей точкой в диапазоне 0,0 до 1,0, где 0,0 представляет собой полностью прозрачный и 1,0 представляет полностью непрозрачный. Это значение влияет только на текущий вид и не влияет на его встроенные вложенные объекты.
У меня есть вид контейнера выполнен следующим образом:
self.myView.backgroundColor = [UIColor blackColor];
self.myView.alpha = 0.5;
[self addSubview:self.myView];
А затем добавить подвидов в 'MyView'
[myView addSubView anotherView];
anotherView.alpha = 1;
NSLog(@"anotherView alpha = %f",anotherView.alpha); // prints 1.0000 as expected
Но 'anotherView' имеет альфа на (он не является непрозрачным, как ожидалось)
Как это быть и что можно сделать?
Добавить кодекс создания anotherView :), а также я думаю, что это опечатка, но вы уверены, что инициализируете 'self.myView'? и добавьте ** anotherView **, например '[self.self addSubview: self.myView];' – iPatel
Может быть, порядок добавления subviews и настройки alpha важен. Попробуйте сыграть с разными последовательностями. – Joride
действительно, документация правильная: это не повлияет на встроенные subviews_its, а альфа-подпункты всегда одинаковы, но визуализированные представления имеют значение «альфа», которое является всеми значениями «alpha», и умножается. например если subviews alpha '0.8' и альфа-надстройка были' 1.0', но вы изменили ее на '0,6', альфа-подпункт все тот же,' 0,8'. отображаемое альфа-значение subview изменяется только от '0.8' до' 0.48'. – holex