使用按钮设置 ContentOffset
Setting ContentOffset using buttons
我制作了一个带有几个按钮的 .xib 文件并将其附加到 inputAccessoryView。我使用 scrollView 使此部分可滚动,但是我必须使用按钮(箭头)添加其他功能。单击前进箭头它应该走到尽头,而后退箭头将作为原始位置。
我在 UI 中制作了整个 ScrollView,没有任何代码。它运行良好,这些按钮位于此之上 view.I 正在考虑使用这些按钮的 IBAction 并更改 ContentOffSet。我正在努力实施。我将不胜感激。
Class 实现:
#import "KCSearchInputAccessoryView.h"
@implementation KCSearchInputAccessoryView
+ (KCSearchInputAccessoryView *)viewFromNib {
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
return [[bundle loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil] lastObject];
}
- (IBAction)backBtnTapped:(id)sender {
}
- (IBAction)forwardBtnTapped:(id)sender {
}
@end
您可以通过更改 ContentOffset 来实现,但是...
假设您有对按钮的引用,更好的方法可能是使用 func scrollRectToVisible(_ rect: CGRect, animated: Bool)
IBAction func rightButton(sender: AnyObject) {
self.theScrollView.scrollRectToVisible(postsButton.frame, animated: true)
}
IBAction func leftButton(sender: AnyObject) {
self.theScrollView.scrollRectToVisible(chatsButton.frame, animated: true)
}
这也会 "slide" 整个按钮。
编辑:已经习惯了使用 Swift...
的人
Objective-C 版本...并且,不使用单独的 Button 框架,只需在滚动视图内容的开头或结尾创建一个矩形:
- (IBAction)backBtnTapped:(id)sender {
CGRect r = CGRectMake(0.0, 0.0, 1.0, 1.0);
[_theScrollView scrollRectToVisible:r animated:YES];
}
- (IBAction)forwardBtnTapped:(id)sender {
CGRect r = CGRectMake(_theScrollView.contentSize.width - 1, 0.0, 1.0, 1.0);
[_theScrollView scrollRectToVisible:r animated:YES];
}
我制作了一个带有几个按钮的 .xib 文件并将其附加到 inputAccessoryView。我使用 scrollView 使此部分可滚动,但是我必须使用按钮(箭头)添加其他功能。单击前进箭头它应该走到尽头,而后退箭头将作为原始位置。
我在 UI 中制作了整个 ScrollView,没有任何代码。它运行良好,这些按钮位于此之上 view.I 正在考虑使用这些按钮的 IBAction 并更改 ContentOffSet。我正在努力实施。我将不胜感激。
Class 实现:
#import "KCSearchInputAccessoryView.h"
@implementation KCSearchInputAccessoryView
+ (KCSearchInputAccessoryView *)viewFromNib {
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
return [[bundle loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil] lastObject];
}
- (IBAction)backBtnTapped:(id)sender {
}
- (IBAction)forwardBtnTapped:(id)sender {
}
@end
您可以通过更改 ContentOffset 来实现,但是...
假设您有对按钮的引用,更好的方法可能是使用 func scrollRectToVisible(_ rect: CGRect, animated: Bool)
IBAction func rightButton(sender: AnyObject) {
self.theScrollView.scrollRectToVisible(postsButton.frame, animated: true)
}
IBAction func leftButton(sender: AnyObject) {
self.theScrollView.scrollRectToVisible(chatsButton.frame, animated: true)
}
这也会 "slide" 整个按钮。
编辑:已经习惯了使用 Swift...
的人Objective-C 版本...并且,不使用单独的 Button 框架,只需在滚动视图内容的开头或结尾创建一个矩形:
- (IBAction)backBtnTapped:(id)sender {
CGRect r = CGRectMake(0.0, 0.0, 1.0, 1.0);
[_theScrollView scrollRectToVisible:r animated:YES];
}
- (IBAction)forwardBtnTapped:(id)sender {
CGRect r = CGRectMake(_theScrollView.contentSize.width - 1, 0.0, 1.0, 1.0);
[_theScrollView scrollRectToVisible:r animated:YES];
}