UIPageViewController : 滚动委托
UIPageViewController : Scroll Delegate
在我的 iOS 应用中,我想设置我的 PageViewController 的主 UIScrollView
的委托。
有很多回答说:“好吧,伙计,只需遍历子视图,您就会找到滚动视图”。
好的,它有效,但它是否通过了 Apple 验证步骤?这不是调用 private API 吗?有人用这个技巧成功发布了应用程序吗?
谢谢大家,
简而言之,不,这不会影响 Apple 的验证步骤。有关 Apple 检测私人 API 使用情况的列表,请参阅 this answer。他们主要是在寻找您是否引用私有 class 或选择器。例如 UIKeyboardImpl
或 _setViewDelegate:
.
我个人在应用商店中有一些非常相似的东西。我需要在 UISearchBar
中获取 UITextField
所以我有以下代码:
UIView<UITextInput> *UISearchBarTextInput(UISearchBar *searchBar) {
for (id view in searchBar.subviews) {
// Could be in the top level. (iOS6)
if ([view conformsToProtocol:@protocol(UITextInput)]) {
return view;
}
// Or the next level. (iOS7)
for (id subview in [view subviews]) {
if ([subview conformsToProtocol:@protocol(UITextInput)]) {
return subview;
}
}
}
return nil;
}
您可能 运行 遇到的大问题是您正在处理私有视图层次结构,Apple 不保证它在 iOS 版本之间保持不变。在上面的代码中,我必须支持两个不同的 iOS 版本。如果他们决定在 iOS9 中进行更改,我将不得不修改我的代码。在这种情况下,最好假设您的查找可能会失败(您将无法找到滚动视图或可能会添加一个新的滚动视图)并使您的代码能够适应这种情况。
此外,您还必须考虑到人们会将您的应用作为应用商店评论的一部分。如果你对预期行为的改变太多,它可能会被拒绝。
在我的 iOS 应用中,我想设置我的 PageViewController 的主 UIScrollView
的委托。
有很多回答说:“好吧,伙计,只需遍历子视图,您就会找到滚动视图”。
好的,它有效,但它是否通过了 Apple 验证步骤?这不是调用 private API 吗?有人用这个技巧成功发布了应用程序吗?
谢谢大家,
简而言之,不,这不会影响 Apple 的验证步骤。有关 Apple 检测私人 API 使用情况的列表,请参阅 this answer。他们主要是在寻找您是否引用私有 class 或选择器。例如 UIKeyboardImpl
或 _setViewDelegate:
.
我个人在应用商店中有一些非常相似的东西。我需要在 UISearchBar
中获取 UITextField
所以我有以下代码:
UIView<UITextInput> *UISearchBarTextInput(UISearchBar *searchBar) {
for (id view in searchBar.subviews) {
// Could be in the top level. (iOS6)
if ([view conformsToProtocol:@protocol(UITextInput)]) {
return view;
}
// Or the next level. (iOS7)
for (id subview in [view subviews]) {
if ([subview conformsToProtocol:@protocol(UITextInput)]) {
return subview;
}
}
}
return nil;
}
您可能 运行 遇到的大问题是您正在处理私有视图层次结构,Apple 不保证它在 iOS 版本之间保持不变。在上面的代码中,我必须支持两个不同的 iOS 版本。如果他们决定在 iOS9 中进行更改,我将不得不修改我的代码。在这种情况下,最好假设您的查找可能会失败(您将无法找到滚动视图或可能会添加一个新的滚动视图)并使您的代码能够适应这种情况。
此外,您还必须考虑到人们会将您的应用作为应用商店评论的一部分。如果你对预期行为的改变太多,它可能会被拒绝。