我已经创建了一个UIToolbar的自定义实例来使用背景图像,而对于我的特定图像,实际工具栏的高度比图像本身小(例如,工具栏为60px,低20px为透明,旁边有一个小项目)。这有点混淆了UIToolbar,因为所有UIBarButtonItem都被迫垂直居中,这与我的图像不对齐。
我可以设置保证金或其他东西让按钮向上滑动吗?我考虑过UIButtons,但我需要一个与现有工具栏外观相匹配的图像,所以我更喜欢动态生成按钮。
答案 0 :(得分:1)
我不完全确定,但这可能有效:- (void)setBackgroundVerticalPositionAdjustment:(CGFloat)adjustment forBarMetrics:(UIBarMetrics)barMetrics
UIBarButtonItem
类。{/ p>
答案 1 :(得分:0)
使用最近的iOS版本,我能够可靠地工作的唯一方法是调整UIToolbar
的内容视图。在我的UIToolbar
子类中,我在layoutSubviews
中有以下代码:
if ( _preferredHeight )
{
[self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull v, NSUInteger idx, BOOL * _Nonnull stop) {
NSString* className = NSStringFromClass(v.class);
if ( [className localizedCaseInsensitiveContainsString:@"content"] )
{
v.frame = CGRectOffset( self.bounds, 0, 2 * (44 - self->_preferredHeight) );
*stop = YES;
}
}];
}
请注意,这可以在UIToolbar
私有子视图层次结构中查看,并且在将来的iOS版本中可能不是AppStore安全或中断。