HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios7 – iOS – 隐藏的配件在方向改变后变得可见大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的情况下,我使用UITextField作为附件,我不需要一直显示.我已确认在方向通知事件触发后发生了更改.我想一个黑客将把配件调整到零高度,但我很谨慎这样做.

想知道是否有人遇到过此并找到了解决方案?

已输入错误报告并提供了示例项目.对于那些具有更高权限的人,可以在bugreport.apple.com上搜索到ID 16771757.我还将其复制到可以访问为https://www.dropbox.com/s/o28vo04ig3yhgz6/ID16771757.zip的DropBox帐户.

谢谢你的阅读.

解决方法

iOS为输入附件视图实例调用此类方法

> [inputAccessoryView setAlpha:1];当附件视图的所有者成为第一响应者时(内部方法调用 – [UIPeripheralHost(UIKiTinternal)executeTransition:]);
> [inputAccessoryView setHidden:NO];当界面旋转完成时(内部方法调用 – [UIPeripheralHost finishRotationOfKeyboard:]);

这就是界面旋转事件后输入附件视图变为可见的原因.

解决方案取决于您期望的行为:
让我们假设输入附件视图高度= 44 – >
现在您隐藏输入附件视图并将所有者设置为第一响应者:
如果您希望inputAccessoryView.frame.size.height等于0,则隐藏输入附件视图的解决方案将其设置为nil:inputAccessoryView = nil;

如果您希望inputAccessoryView.frame.size.height等于44,则隐藏输入附件视图的解决方案将覆盖setHidden:方法

- (void)setHidden:(BOOL)hidden {
    [super setHidden:self.customIsHiddenFlag];
}

其中customIsHiddenFlag属性,您需要用于实现显示/隐藏附件视图的逻辑;

或覆盖setAlpha:方法

- (void)setAlpha:(CGFloat)alpha {
    [super setAlpha:(self.customIsHiddenFlag ? 0 : 1)];
}

这些解决方案适用于iOS 7.

对于iOS 6,您可以使用基本解决方案inputAccessoryView.hidden = YES并且它可以正常工作,因为iOS不会调用setHidden:在触发界面轮换时自动为NO.

看来你是对的,这是iOS6和iOS7上不同行为的错误原因.如果Apple想要强制显示输入附件视图,那么他们应该调用setHidden:NO不仅在界面旋转之后,而且在所有者成为第一响应者时.

大佬总结

以上是大佬教程为你收集整理的ios7 – iOS – 隐藏的配件在方向改变后变得可见全部内容,希望文章能够帮你解决ios7 – iOS – 隐藏的配件在方向改变后变得可见所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。