Я создал UIScrollView с использованием кода, и я создал подпредставления, которые я создаю динамически из БД, которые добавляются в массив представлений и в UIScrollview. Я использую методы touchesBegan и touchesMoved. Подпредставление, которое я выбираю, не распознается , но элемент управления переходит в touchesBegan и касается перемещенного метода. Я разместил код ниже. Пожалуйста, помогите мне решить эту проблему.
Я создал код прокрутки, и у меня есть подпредставления в массиве с именем "arrayofviews". Эти подпредставления являются теми же представлениями, что и в массиве. Я могу переместить эти подпредставления, которые находятся из БД, в обычном представлении, но когда Я добавил эти представления в scrollview, они не работают.
Я перепробовал так много решений, которые есть в сети, но не смог найти подходящего.
.m файл
- (void)viewDidAppear:(BOOL)animated { scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 374)]; scrollview.backgroundColor=[UIColor clearColor]; [scrollview setScrollEnabled:YES]; [scrollview setContentSize:CGSizeMake(300, 600)]; scrollview.showsVerticalScrollIndicator = YES; scrollview.delaysContentTouches=NO; . . . . //here i am retrieving the controls from the DB and adding into the "arrayofviews" array which is an NSMutableArray //I have added subviews in this part to the scroll like [scrollview addSubview:vw1]; [scrollview addSubview:vw2]; . . . scrollview.userInteractionEnabled=NO; scrollview.scrollEnabled=FALSE; [self.view addSubview:scrollview]; [self.view bringSubviewToFront:scrollview]; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { scrollview.userInteractionEnabled=YES; [self.nextResponder touchesBegan:touches withEvent:event]; UITouch *touch = [[event allTouches] anyObject]; CGPoint touchLocation; touchLocation.x=scrollview.contentOffset.x; touchLocation.y=scrollview.contentOffset.y; for(UIView *vw in arrayOfViews) { vw.userInteractionEnabled=YES; if([touch view]==vw) { vw.center=touchLocation; } } } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event //method to intiate the touch events { [self.nextResponder touchesMoved:touches withEvent:event]; UITouch *touch = [[event touchesForView:scrollview] anyObject]; CGPoint touchLocation1; touchLocation1.x=scrollview.contentOffset.x; touchLocation1.y=scrollview.contentOffset.y; for(UIView *vw in arrayOfViews) { if([touch view]==vw) { vw.center=touchLocation1; //statement to move the control } } }