1

これを探している人はもっといると思いますが、どこにも見つかりません。

私が望むのは、UIStackView を含むスクロールビューがビューの上部を超えてスクロールされたら、UIStackView の 1 つ以上のサブビューをフロートにすることです。動作は、テーブルビュー ヘッダーに似ている必要があります。

4

2 に答える 2

0

最初に思ったことをお話しします。

UIScrollViewDelegateこのようなデリゲートを使用してスクロールを検出してみてください

func scrollViewDidScroll(scrollView: UIScrollView) {

    }

次のように、スクロール ビューの現在の Y を確認します。

scrollView.contentOffset.y

条件を作成し、true の場合は UIStackView の位置を変更します。

しかし、私はそのような解決策をお勧めしません。UI のベスト プラクティスを確認し、テーブル ビューのヘッダーに固執することをお勧めします。

于 2015-09-15T08:57:22.860 に答える
-1

@Rebel Designer、ScrollableStackViewライブラリを聞いたことがありますか? これがgithubページです:

https://github.com/gurhub/ScrollableStackView

そしてあなたのためのいくつかのサンプルコード:

迅速

import ScrollableStackView

var scrollable = ScrollableStackView(frame: view.frame)
view.addSubview(scrollable)

// add your views with 
let rectangle = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 55))
rectangle.backgroundColor = UIColor.blue
scrollable.stackView.addArrangedSubview(rectangle)
// ...

Objective-C

@import ScrollableStackView

ScrollableStackView *scrollable = [[ScrollableStackView alloc] initWithFrame:self.view.frame];
scrollable.stackView.distribution = UIStackViewDistributionFillProportionally;
scrollable.stackView.alignment = UIStackViewAlignmentCenter;
scrollable.stackView.axis = UILayoutConstraintAxisVertical;
[self.view addSubview:scrollable];

UIView *rectangle = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 55)];
[rectangle setBackgroundColor:[UIColor blueColor]];

// add your views with
[scrollable.stackView addArrangedSubview:rectangle]; 
// ...

それが役に立てば幸い。

于 2016-12-20T20:27:57.413 に答える