Добавить кнопку опции UIbutton в прокрутку - PullRequest
0 голосов
/ 11 декабря 2011

Я пытаюсь создать кнопку параметров над видом прокрутки, которая позволит пользователю нажать ее и что-то произойдет.

В настоящее время у меня есть карта с возможностью прокрутки, но если вы ущипните, чтобы увеличить ее, увеличитвсе, включая кнопку ... где на самом деле я хотел бы, чтобы кнопка оставалась в своем первоначальном размере в исходном положении.

Я думаю, что мне нужно создать новое представление, чтобы это произошло, но если я это сделаючто я не смогу управлять видом прокрутки ... поэтому мне было интересно, если кто-нибудь знает, как я могу это сделать?

вот мой код и некоторые изображения того, что происходит

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    //Create Scrollview
    scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    scrollView.backgroundColor = [UIColor blackColor];
    scrollView.delegate = self;
    scrollView.bounces = NO;

    //Create Scrolled image
    backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"auckland-300.jpg"]];
    image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"249a-134206f1d00-1342071f5d9.ImgPlayerAUCKLAND.png"]];

    //Initalize Button Programatically
    playButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [playButton addTarget:self 
                   action:@selector(sendHttpsRequest)
         forControlEvents:UIControlEventTouchDown];
    [playButton setTitle:@"Show View" forState:UIControlStateNormal];
    playButton.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);


    // Note here you should size the container view appropriately and layout backgroundImage and image accordingly.
    containerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,601,601)];

    //Add subviews to container
    [containerView addSubview:backgroundImage];
    [containerView addSubview:image];

    //Initalize views
    scrollView.contentSize = containerView.frame.size;
    [scrollView addSubview:containerView];
    [scrollView addSubview:playButton];

    //Scrolling
    scrollView.minimumZoomScale = 0.5;
    scrollView.maximumZoomScale = 31.0;
    [scrollView setZoomScale:scrollView.minimumZoomScale];
    self.view = scrollView;    


}

enter image description here

enter image description here

Решение:

//Initalize views
    scrollView.contentSize = containerView.frame.size;
    [scrollView addSubview:containerView];

    //Scrolling
    scrollView.minimumZoomScale = 1.0;
    scrollView.maximumZoomScale = 31.0;
    [scrollView setZoomScale:scrollView.minimumZoomScale];

    //Set up Highrachys
    [self.view addSubview:scrollView];
    [self.view addSubview:playButton];

1 Ответ

2 голосов
/ 11 декабря 2011

Не устанавливайте self.view в режиме прокрутки. Вместо этого добавьте представление прокрутки как подпредставление self.view и добавьте кнопку в качестве другого подпредставления self.view.

В данный момент ваша кнопка является подпредставлением представления прокрутки, поэтому любое действие прокрутки также применяется к кнопке, как вы видели. Кнопка должна находиться в отдельной ветви иерархии представления.

...