سؤال

أرغب في تمرير Scrollview استنادًا إلى قيم Uiaccelerometer. ماهي الطريقة الأفضل لاتمام هذا؟

في البداية قمت بتعيين إزاحة المحتوى على قيمة بناءً على قيم التسارع التي أحصل عليها. ثم على كل scrollViewDidEndAnimating, ، قمت مرة أخرى بتعيين إزاحة المحتوى بناءً على قيم التسارع. انا افهم ذلك setContentOffset في الواقع يقوم بتمرير Scrollview مع سرعة موحدة دون أي تسارع. ومع ذلك ، يبدو أن هذه الآلية متشنج للغاية في تمرير Scrollview.

وسيتم تقدير أية أفكار.

شكرا مع تحياتي

هل كانت مفيدة؟

المحلول

فعلت هذا مرة واحدة. sv هو عرض التمرير.

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    if (sv.tracking || sv.decelerating) return;
    CGPoint pt = sv.contentOffset;
    pt.x += acceleration.x * 2;
    pt.y -= acceleration.y * 2;
    if (pt.x < 0) pt.x = 0;
    if (pt.x > sv.contentSize.width - sv.frame.size.width) pt.x = sv.contentSize.width - sv.frame.size.width;
    if (pt.y < 0) pt.y = 0;
    if (pt.y > sv.contentSize.height - sv.frame.size.height) pt.y = sv.contentSize.height - sv.frame.size.height;
    sv.contentOffset = pt;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top