这是对 iOS Messages.app 中的编辑栏的精确重构,模仿了行为和图形,同时允许您定制它的大部分功能。
它基本上由一个文本视图、一个占位符标签、位于文本视图左侧的一个工具按钮和一个位于文本视图右侧的主要按钮组成。
如果您在寻找适用于 iOS 5 和 6 且具有旧外观和感觉的东西,请查看 版本 1.1.1。
首选方式是使用 CococaPods。
pod 'PHFComposeBarView', '~> 2.0.1'
如果您出于某些原因无法使用 CocoaPods(您真的应该这么做,这是热门的),那么请从 Classes/
中抓取文件,并将其放入您的项目中。代码使用 ARC,因此如果尚未使用 ARC,请务必将这些文件打开以启用 ARC。它依赖于 PHFDelegateChain
,因此请确保将其添加到您的项目中。
上面演示中可见的编辑栏创建如下
CGRect viewBounds = [[self view] bounds];
CGRect frame = CGRectMake(0.0f,
viewBounds.size.height - PHFComposeBarViewInitialHeight,
viewBounds.size.width,
PHFComposeBarViewInitialHeight);
PHFComposeBarView *composeBarView = [[PHFComposeBarView alloc] initWithFrame:frame];
[composeBarView setMaxCharCount:160];
[composeBarView setMaxLinesCount:5];
[composeBarView setPlaceholder:@"Type something..."];
[composeBarView setUtilityButtonImage:[UIImage imageNamed:@"Camera"]];
[composeBarView setDelegate:self];
要受通知按钮点击,实现 PHFComposeBarViewDelegate
协议的可选方法。
- (void)composeBarViewDidPressButton:(PHFComposeBarView *)composeBarView;
- (void)composeBarViewDidPressUtilityButton:(PHFComposeBarView *)composeBarView;
要接收帧变化的通知,可以通过监听通知(PHFComposeBarViewDidChangeFrameNotification
和 PHFComposeBarViewWillChangeFrameNotification
)或在可选的代理方法中实现。
- (void)composeBarView:(PHFComposeBarView *)composeBarView
willChangeFromFrame:(CGRect)startFrame
toFrame:(CGRect)endFrame
duration:(NSTimeInterval)duration
animationCurve:(UIViewAnimationCurve)animationCurve;
- (void)composeBarView:(PHFComposeBarView *)composeBarView
didChangeFromFrame:(CGRect)startFrame
toFrame:(CGRect)endFrame;
请注意,从 UITextViewDelegate
协议中继承的所有方法都会被转发,因此您可以添加自己的行为到文本视图中,例如限制文本长度等。
有关可用属性及其说明,请参阅 PHFComposeBarView.h
。
PHFComposeBarView
以 MIT 许可证发布。
Philipe Fatio (@fphilipe)
以下这些人和公司赞助了到目前为止的开发