我有一个自定义UIView
子类,想要检测其祖先何时处于焦点。但是这个课程本身无法集中精力。
基本上,当UIImageView
设置为true时,我希望执行与adjustsImageWhenAncestorFocused
类似的操作。
我希望有一个解决方案,当焦点发生变化时,不需要祖先进行通信。
答案 0 :(得分:0)
您可以实现didUpdateFocusInContext并检查目标视图是否是您的祖先:
byte[] frontBytes = Encoding.ASCII.GetBytes(textFront); // no (1)
byte[] combined = new byte[frontBytes.Length + bytes.Length];
frontBytes.CopyTo(combined, 0);
bytes.CopyTo(combined, frontBytes.Length); //no (2)
Stream stream = new StreamWriter(); //no (3)
stream.Write(combined, 0, combined.Length);
答案 1 :(得分:0)
我们不能使用didUpdateFocus(in:with:)
,因为文档中并非所有层次结构视图都调用它:
焦点引擎在包含先前焦点视图,下一个焦点视图或两者都包含的所有焦点环境中调用此方法
因此,如果视图返回false
的{{1}},则无法在其上调用此方法。
适当的方法是观察canBecomeFocused
,如果您使用的是Combine,则是这样的:
UIFocusSystem.didUpdateNotification