【发布时间】:2014-10-25 21:11:35
【问题描述】:
我已经能够更改后退按钮图标的垂直位置,但不能更改文本。
我在 UINavigationBar 中使用 layoutSubviews 方法:
- (void)layoutSubviews {
[super layoutSubviews];
BOOL fixed = NO;
NSArray *classNamesToReposition = @[@"_UINavigationBarBackIndicatorView", @"UINavigationButton", @"UINavigationItemButtonView"];
for (UIView *view in [self subviews]) {
if ([classNamesToReposition containsObject:NSStringFromClass([view class])] && !fixed) {
CGRect frame = [view frame];
if ([NSStringFromClass([view class]) isEqualToString:@"_UINavigationBarBackIndicatorView"]) {
frame.origin.y = 14.5;
} else if ([NSStringFromClass([view class]) isEqualToString:@"UINavigationButton"]) {
frame.origin.y = 9.0;
} else if ([NSStringFromClass([view class]) isEqualToString:@"UINavigationItemButtonView"]) {
frame.origin.y = 5.0;
}
[view setFrame:frame];
}
}
}
问题是我在 UINavigationItemButtonView 上所做的任何帧更改似乎都没有任何效果,我对它的 UILabel 子视图(即实际按钮文本)所做的任何帧更改也没有。当我记录视图时,框架似乎正在改变,但文本在我的视图中没有移动。我做错了什么?
【问题讨论】:
-
杰克,你有没有试过把代码放在
viewDidAppear:中?我在我的一个项目上进行了测试,它确实设置了 y 位置。
标签: ios uinavigationcontroller uikit uinavigationbar