Если кнопка будет прокручиваться вместе с остальным содержанием, то все, что помещает содержимое в представлении содержимого scrollView должно учитываться положение кнопки - иначе кнопка будет закрывать этот контент или он будет закрывать кнопку.
Удобно для вашей цели, с scrollViews, если contentView не больше, чем кадр на любой оси, scrollview не будет прокручиваться (потому что прокручивать нечего), он будет просто отображаться.
Итак, внутри вашей прокрутки установите вашу кнопку вертикально на расстоянии от супервизора.top на сумму, которая, если ваша кнопка является наивысшей точкой Y, высота constant.constant + button не будет выше, чем scrollview.
Если ваш подход заключается в том, чтобы добавлять представления в scrollview nad, то добавляйте к ним противопоказания по мере добавления, когда вещи добавляются в scrollview, им нужно проверить, будут ли они перекрывать кнопку или быть ниже нее, и если это так получите свои вертикальные ограничения, прикрепленные к кнопке button.bottom или вещь, прикрепленную к кнопке button.bottom, а не superiew.top или вещь над ними, прикрепленная к superiew.top. Если вещи имеют разную высоту, этот подход не является устойчивым, потому что вы не сможете рассчитывать заранее, и вам нужно переосмыслить.
Независимо от того, где находится кнопка, если она будет прокручиваться с контентом, то вокруг этого шага не обойтись: содержимое должно располагаться вокруг него или оно будет перекрывать часть или наоборот.