0

のプロパティKVOを観察するために使用しています。ユーザーが下に引っ張っているときに、ユーザーが画面から指を離したかのようにスクロール ビューを解放したい。とにかくこれを行うことはありますか?contentOffsetUIScrollViewscrollViewcontentOffset.y == -50.0

4

1 に答える 1

0

はい、オフセットを -50.0 に制限できます。

- (void) observeValueForKeyPath:(NSString*)keyPath 
                       ofObject:(id)object
                         change:(NSDictionary*)change
                        context:(void*)context
{
    //if this is not the only KVO then you should first perform some checks
    //if the object and keypath are correct

    //otherwise you can omit the check or modify, if your UIScrollView is subclassed

    if ([object isKindOfClass:[UIScrollView class]])
    {
        UIScrollView *scrl = (UIScrollView *)object;

        CGPoint offset = scrl.contentOffset;

        if (offset.y < -50.0f)
        {
            offset.y = -50.0f;
            scrl.contentOffset = offset;
        }
    }
}

このコードをscrollViewデリゲート メソッド (など) に移動することを検討してください。KVO は優れたツールですが、値を急速に変更するにはコストdidScroll:がかかりすぎる可能性があります。

于 2013-04-26T16:33:21.843 に答える