你如何创建一个滚动UIToolbar
,在键盘上方有额外的附件按钮,也可以通过它的宽度滚动?就像第一天和 Byword 所做的那样。
编辑:我正在使用UITextView
从旁白
这就是我对输入附件视图所做的,我已经实现了条形按钮项。现在我很好奇是否可以让它水平滚动以显示更多按钮。
你如何创建一个滚动UIToolbar
,在键盘上方有额外的附件按钮,也可以通过它的宽度滚动?就像第一天和 Byword 所做的那样。
编辑:我正在使用UITextView
从旁白
这就是我对输入附件视图所做的,我已经实现了条形按钮项。现在我很好奇是否可以让它水平滚动以显示更多按钮。
创建一个视图,其中包含滚动视图中的所有按钮,并将该视图分配为 inputAccessoryView 或您的 TextField。希望你能得到我的答案。
在 viewDidLoad 中使用此代码:
UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.barStyle = UIBarStyleBlackTranslucent;
numberToolbar.items = [NSArray arrayWithObjects:[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done:)],nil];
[numberToolbar sizeToFit];
self.yourTextView.inputAccessoryView = numberToolbar;
这基本上在键盘上添加了一个工具栏,带有一个显示“完成”的栏按钮。
根据您的要求创建多个条形按钮并将它们添加到数组中。现在在视图中创建一个滚动视图。并将滚动视图作为文本字段的输入附件视图。
这是一个示例: 1. 根据您的要求创建条形按钮
UIBarButtonItem* button1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done:)];
UIBarButtonItem* button2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(done:)];
UIBarButtonItem* button3 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(done:)];
UIBarButtonItem* button4 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(done:)];
UIBarButtonItem* button5 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRedo target:self action:@selector(done:)];
将它们添加到数组
NSArray *itemsArray = [NSArray arrayWithObjects:button1,button2,button3,button4,button5,nil];
在 UIView 中创建滚动视图
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.frame = toolbar.frame;
scrollView.bounds = toolbar.bounds;
scrollView.autoresizingMask = toolbar.autoresizingMask;
scrollView.showsVerticalScrollIndicator = true;
scrollView.showsHorizontalScrollIndicator = true;
scrollView.scrollEnabled = YES;
//scrollView.bounces = false;
UIView *superView = toolbar.superview;
[toolbar removeFromSuperview];
toolbar.autoresizingMask = UIViewAutoresizingNone;
toolbar.frame = CGRectMake(0, 0, 400, toolbar.frame.size.height);
toolbar.bounds = toolbar.frame;
[toolbar setItems:itemsArray];
scrollView.contentSize = toolbar.frame.size;
[scrollView addSubview:toolbar];
[superView addSubview:scrollView];
将滚动视图添加inputAccessoryView
到 textField
self.textField.inputAccessoryView = 滚动视图;
您需要继承 UIView 并添加 UIToolbar 作为背景视图。在其中添加 UIScrollView 在此 UIScrollView 中添加添加 UIButtons。前任:
@implementation CustomAccessoryView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor clearColor];
// Make toolbar as faked background
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:self.frame];
toolbar.barStyle = UIBarStyleBlackTranslucent;
[toolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
[self addSubview:toolbar];
[self sendSubviewToBack:toolbar];
//Insert UIScrollVIew as subview and add button inside it
}
return self;
}
@end
在开始编辑文本时,您应该设置 uiview 动画。
[UIView beginAnimations:nil context:nil];
CGRect rect=self.view.frame;
rect.origin.y=-50;
self.view.frame=rect;
[UIView commitAnimations];
结束编辑之后
[UIView beginAnimations:nil context:nil];
CGRect rect=self.view.frame;
rect.origin.y=0;
self.view.frame=rect;
[UIView commitAnimations];