Вы используете интерфейс Builder/раскадровки? Если это так, просто добавьте прокрутку. Затем добавьте кнопку, но не добавляйте кнопку в качестве подсмотра прокрутки. Просто добавьте его как родного брата. Но убедитесь, что сначала просматривается прокрутка. Иерархия должна выглядеть следующим образом:
\--View (The underlaying UIView
\--scrollView (The UIScrollView)
\-- anyView (Any subviews of the scroll view come here
\--button (The UIButton)
При этом кнопка не зависит от зрения прокрутки, его прокрутки или размера контента. Он вполне может быть размещен над просмотром прокрутки.
Редактировать: быстрый (не проверенный синтаксисом и т. Д.) В качестве примера для программного решения.
UIScrollView *myScroller = [[UIScrollView alloc] initWith...];
UIImageView *someImage = [[UIImageView alloc] initWith...]; //Just a sample subivew.
UILabel *someLabel = [[UILabel alloc] initWith...]; //Another sample.
UIButton *myButton [[UIButton alloc] initWith...];
[self.view addSubView:myScroller];
[myScroller addSubView:someImage];
[self.view addSubView:myButton]; //it is important, that myScroller was added first
[myScroller addSubView:someLable]; //the sequence of addding subviews to the content does not matter much.
(Вы можете иметь один просмотр контента в пределах вашего зрения скроллер, который затем контейнер для всех subivews. Но это не влияет на то, что я пытаюсь объяснить.)
К сожалению, я не использую IB или XIBs (но я понимаю, спасибо! –
Это не имеет большого значения. Просто добавьте UIScrollView в качестве подзадача UIView и добавьте UIButton в тот же UIView объект как подпункт.Они будут использовать одну и ту же систему координат, а прокрутка и изменение размера содержимого не будут влиять на кнопку вообще. Просто убедитесь, что сначала прокручивается представление прокрутки, поэтому оно сначала нарисовано. даже позже. –