我们是否可以修改默认iOS控件的子视图,比如UIDatePicker?我的应用程序具有极简主义/平面UI,默认日期选择器与该样式不匹配。我能找到修改它的唯一方法是遍历其子视图并隐藏添加阴影等的子视图,如下所示:
UIView *background = (UIView *)[[self pickerViews].subviews objectAtIndex:0];
background.hidden = YES;
这是允许的还是会让我的应用被拒绝?我实际上并没有搞乱控制或其功能,只是它的外观。
答案 0 :(得分:2)
虽然您可能不会立即被拒绝,但是当控件的子视图发生更改时,您可能会在将来看到意外行为。处理自己的自定义控件或在公共API中找到接近所需外观的方法可能是一个更好的主意。
答案 1 :(得分:1)
它不是真正的“私有API” - 它完全记录在SDK中。但是,您依赖于 not 记录的行为(即子视图0是您要隐藏的行为),因此您需要小心。
您的代码有两个潜在问题:
您还需要做两件事:
答案 2 :(得分:0)
不建议更改未通过API公开的内容。将来苹果可能会删除该特定索引的子视图。最好避免这种方法。尝试在UI或实现方面寻找其他选项。