已经有一年多时间寻找答案了,如何将匹配式按钮添加到这些按钮的相同区域/处理程序
cydia tweak “Safari Download Manager”
的示例之前:
之后:
您可以看到,为了添加新按钮,当前/旧按钮对齐/位置必须更改为更小的颜色,
我对Objective-c没有多少经验,但是要重新塑造我在 HTML 中所说的内容:
例如,那些区域按钮处理程序:
<div id="buttons" class="top-buttons">
<img src="back.png" >
<img src="forth.png" >
</div>
对于HTML,如果我想添加与top-buttons
类相匹配的相同按钮样式,我需要做的就是在div
这是Objective-C (或theos)的工作方式吗?
请注意,它可以是除按钮之外的任何内容,例如在第二张照片中添加新的手动下载行等等。等等
答案 0 :(得分:2)
免责声明:这是使用带有iOS 6.1.4的iPhone 5完成的。
如果您从Safari转储标头,您可以找到两个可能有用的类来查看:
BrowserToolbar:
@interface BrowserToolbar : UIToolbar <WebBookmarksClientDelegateProtocol> {
id<BrowserPanel> _browserPanel;
NSArray *_defaultToolbarItems;
SpacedBarButtonItem *_backItem;
SpacedBarButtonItem *_forwardItem;
SpacedBarButtonItem *_actionItem;
SpacedBarButtonItem *_bookmarksItem;
SpacedBarButtonItem *_cloudTabsItem;
SpacedBarButtonItem *_tabExposeItem;
SpacedBarButtonItem *_fullscreenItem;
BOOL _showingCloudTabButton;
...
}
...
- (void)_updateFixedSpacing;
- (void)updateButtonsAnimated:(BOOL)animated;
...
@end
和SpacedBarButtonItem:
@interface SpacedBarButtonItem : UIBarButtonItem {
UIBarButtonItem *_precedingFixedSpace;
}
@property(readonly, assign, nonatomic) UIBarButtonItem *precedingFixedSpace;
@end
使用cycript,您可以看到BrowserToolbars有一个_items
ivar,但它是一个不可改变的NSArray。但是,可以将它交换为另一个包含SpacedBarButtonItem原始集合以及自定义集合的数组。
答案 1 :(得分:1)
我不确定你对每个按钮使用相同的样式是什么意思。这些按钮都是图像,这就是它们看起来相似的原因。添加新按钮时,它们的对齐和位置也不会改变。只有URL文本框变小。 iOS没有布局的标记语言,但您仍然可以使用AutoLayout实现相同的效果。
作为第2步的例子:
self.myBtn.hidden = true;
self.myBtnConstraint.constant = 0.0f;
答案 2 :(得分:1)
在处理导航栏和工具栏时,通常在每个“真实”栏按钮项之间使用灵活空间栏按钮项,以均匀分隔它们。如果您插入另一个按钮项目(以及添加一个灵活空间项目)将自动减少所有灵活空间项目的空间再次具有均匀间距。
如果您是手动执行其他视图层次结构,则需要自己进行数学运算,或使用autolayout实现灵活的宽度。