محاولة معرفة المكان الذي توجد فيه لمساتي، عند تحريك عنصر تحكم منزلق

StackOverflow https://stackoverflow.com/questions/1242946

  •  12-09-2019
  •  | 
  •  

سؤال

أرغب في إنشاء عنصر تحكم متمربا متغيرا على iPhone. أساسا أنا أستخدم تحكم Usislider ولكن أود إضافة البعد الثاني إلى عنصر التحكم هذا عن طريق الكشف عن المكان الذي يوجد فيه الإصبع في العرض الحالي.

على سبيل المثال، يمكن للمستخدم أن ينزلق عنصر التحكم الأيسر واليمين، لكنني أريد أن أرى مكان إصبعهم رأسيا في الرأي.

مشكلتي هي أنه عند معالجة عنصر تحكم منزلق. لا يتم استدعاء الوظيفة التالية.

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

لذلك هذا يعني أنني لا أستطيع اكتشاف أي أحداث لمس لأنني أفترض أنهم يتم إرسالهم إلى شريط التمرير؟ أي شخص حاول القيام بذلك؟ أو يجب أن أقوم بطول uislider. أمم.

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

المحلول

رأس

#import <Foundation/Foundation.h>


@interface JBSlider : UISlider {
    double verticalTouchDelta;
}
@property(nonatomic, assign)    double verticalTouchDelta;

@end

الملف الرئيسي

استيراد "JBSLider.h"

implementation JBSLider.

isnthesize verticaltouchdelta؛ - (باطلة): (VOIB): (SEL) الإجراء إلى: (ID) الهدف Forevent: (UIEVENT *) حدث {[Super Selfaction: الإجراء إلى: الهدف Forevent: حدث]؛ // nslog (@ "مرحبا مرحبا")؛

UITouch * touch = [[event touchesForView:self] anyObject];
//NSLog(@"%f", [touch locationInView:self].y);
verticalTouchDelta  = [touch locationInView:self].y;    

}

@نهاية

ما عليك سوى تغيير منزلك من Usislider إلى JBSLider في منشئ واجهة. يعمل رهيبة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top