将可滚动的InputAccessoryView居中

时间:2019-09-23 22:16:11

标签: ios

全部

我在UITextView上附加了一个可滚动的InputAccessoryView。 创建如下:

  • 创建一个UIScrollView
  • 添加水平的UIStackView。
  • 将堆栈视图的顶部,底部,尾部,前导附加到滚动视图。
  • 在堆栈和滚动之间设置相等的高度。
  • 将许多按钮插入堆栈视图。
  • 设置TextView.inputaccessoryview = scrollview。

Voila! (注意-只有最后一行是程序化的。)

因此,当内容(堆栈视图)宽于键盘时,此方法可以正常工作并正确滚动;但是当旋转至横向(或在iPad上运行)时,它会保持对齐状态。

当键盘的宽度大于按钮组的宽度时,我希望按钮居中。

我尝试使用Center X将Scrollview嵌入到UIView中,但这似乎不起作用。

有人可以给我一些建议吗? 谢谢

1 个答案:

答案 0 :(得分:0)

找到了! 答案是使用滚动条(上面的InputAccessoryView)上的ContentInset。具体代码为:

public void CentreToolbar()
{
    var offsetX = Math.Max((scrollView.Bounds.Width - scrollView.ContentSize.Width) / 2, 0);
    scrollView.ContentInset = new UIEdgeInsets(0, (nfloat)offsetX, 0, 0);
}

只要屏幕布局发生更改(例如在旋转过程中),就应调用此代码。