2017-03-01 1 views
0

ボタンの数を含む.xibファイルを作成し、それをinputAccessoryViewにアタッチしました。このセクションをscrollViewでスクロール可能にしましたが、ボタン(矢印)を使用して追加機能を追加する必要がありました。前方矢印をクリックすると、終了位置に戻り、後方矢印が元の位置に移動します。ボタンを使用してContentOffsetを設定する

first position - start second position - end

私は、任意のコードなしでUI全体ScrollViewを作りました。うまくいき、これらのボタンがこのビューの上にあります。私はこれらのボタンのIBActionを使用しContentOffSetを変更することを考えていました。私は実装に苦しんでいます。私はいくつかのヒントに感謝します。実装のための

クラス:

#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 

答えて

1

あなたは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) 
} 

これはまた、ボタンを「スライド」させます。

編集:もらってちょうどスクロールビューの最初や最後に矩形を作成し、そのスウィフト...

Objective-Cのバージョンを使用している人々に使用...と、代わりに個々のボタンのフレームを使用します内容:ここ

- (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]; 
} 

例プロジェクト:https://github.com/DonMag/ScratchPad

+0

興味深いアプローチです。私は質問を編集し、クラスを実装に追加しました。 .hファイルでこれらのボタンをIBOutletとして追加すると、myScrollViewが.mのために表示されます。 scrollRectToVisibleのその機能を取得する方法がわかりません。 – Vuko

+0

私はチャット、人、スーパーユーザなどのボタンを何らかの方法で接続していると仮定していますか? – DonMag

+0

さて、この時点ではありません。このビューを作成する際にInterfaceに追加しただけです。このスクロールが完了したら、後で機能を追加します。 – Vuko

関連する問題