Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

straber

macrumors member
Original poster
Jul 3, 2012
60
0
I have a UIScrollView with a tall view that has a lot of controls on it. Near the bottom of the ScrollView I have a button and some text fields. When I click the button, the scroll view scrolls up a little bit, which is not what I want and I can find no code anywhere that would cause it to scroll. I set breakpoints on every line of code that scrolls the scroll view, but the program never breaks on one of them when the button is clicked. Does anyone have any idea what could be causing the scrolling?

I'd really appreciate any help, I've already pulled enough hair out over this one.
 
button code

The code that executes when the button is clicked is this:

Code:
- (IBAction)addPersonTapped {
    FFSAppDelegate *appDelegate = (FFSAppDelegate *)[[UIApplication sharedApplication] delegate];
    if (appDelegate.currentCID == nil) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Select Association" message:@"You must first select an association by tapping the 'Select Association' button at the top." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
        [alert show];
    }
    else {
        if (peopleCategoryPicker == nil) {
            self.peopleCategoryPicker = [[FFSPeopleCategories alloc] initWithStyle:UITableViewStylePlain];
            peopleCategoryPicker.delegate = self;
            self.peopleCategoryPickerPopover = [[UIPopoverController alloc] initWithContentViewController:peopleCategoryPicker]; 
        }
        [self.peopleCategoryPickerPopover presentPopoverFromRect:[txtPeopleCategories bounds] inView:txtPeopleCategories permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];    
    }

    FFSPerson *newPerson = [[FFSPerson alloc] init];
    [addedPeople addObject:newPerson];
    minPeopleSliderLabel.text = @"1";
    maxPeopleSliderLabel.text = [NSString stringWithFormat:@"%i", [addedPeople count]];
    peopleSlider.maximumValue = [addedPeople count];
    peopleSlider.value = [addedPeople count];

}

Basically, it displays a popover pointing to a textfield, then creates a new instance of a custom object, adds it to an array, sets the text on some labels, and changes some properties on a slider. Nowhere in the function does it do anything with the scrollview or call another function, that's why I'm so confused.
 
Just a hunch

When you say by "a small amount" how much is it scrolling?
Is the amount the same or random?
Would this small amount be say the amount of movement a figure would have while tapping the button?
If your really careful could you tap the button without scrolling?

If the answer is yes then it might be time to read up on Touch event handling.
It could be that your button isn't cancelling the touch event an it's still getting passed up the chain to the scroll view which is still responding to it.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.