Проблема: я создаю собственное раскрывающееся меню (
Код: Выделить всё
VSCaptureModeDropdownViewКод: Выделить всё
34). Однако зеркальные блики и краевое освещение по углам, кажется, ломаются или полностью исчезают. Вместо насыщенного края 3D-стекла он выглядит просто как дешевая плоская рамка толщиной 1 пиксель (см. прикрепленное изображение).
Эффект жидкого стекла
[b]Код 1: Сломанная установка (прямоугольник с закругленными углами)[/b]
Swift
private func setupBackground() {
if #available(iOS 26.0, *) {
let glassEffect = UIGlassEffect()
glassEffect.isInteractive = true
// To match a dark design, I used a black tint with 0.8 alpha
glassEffect.tintColor = .black.withAlphaComponent(0.8)
let effectView = UIVisualEffectView(effect: glassEffect)
effectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
effectView.clipsToBounds = true
addSubview(effectView)
self.visualEffectView = effectView
}
}
override func layoutSubviews() {
super.layoutSubviews()
visualEffectView?.frame = bounds
// Setting a fixed corner radius breaks the edge lighting
visualEffectView?.layer.cornerRadius = 34
}
Код: Выделить всё
VSGlassIndicatorViewвведите описание изображения здесь
Единственное существенное отличие состоит в том, что это идеальная форма круга/таблетки, где угловой радиус рассчитывается динамически:
Код: Выделить всё
private func setupIfNeeded() {
guard #available(iOS 26.0, *) else { return }
let glassEffect = UIGlassEffect()
glassEffect.isInteractive = true
let effectView = UIVisualEffectView(effect: glassEffect)
effectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
effectView.clipsToBounds = true
addSubview(effectView)
visualEffectView = effectView
}
public override func layoutSubviews() {
super.layoutSubviews()
visualEffectView?.frame = bounds
// This renders the glass effect perfectly
visualEffectView?.layer.cornerRadius = min(bounds.width, bounds.height) / 2
}
Код: Выделить всё
cornerRadius = 34Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/798 ... ct-but-wor
Мобильная версия