如何将UIScollView
内容作为UIView
的内容?我想在UIView
中设计应用布局,然后将该视图放入与UIScrollView
相关联的UIPageControl
以进行分页。因此,当用户向侧面滑动时,将显示下一个视图。我对如何实现这一点有一点想法,但我想在不浪费大量时间的情况下做到正确。
继承我的DetailViewController:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using UIKit;
using Foundation;
using CoreGraphics;
using CloudKit;
namespace RecordStorePro
{
public partial class DetailViewController : UIViewController
{
public Record DetailRecord { get; set; }
public DetailViewController (IntPtr handle) : base (handle)
{
}
public void SetDetailRecord (Record record)
{
if (DetailRecord != record) {
DetailRecord = record;
// Update the view
ConfigureView ();
}
}
void ConfigureView ()
{
// Update the user interface for the detail item
if (IsViewLoaded && DetailRecord != null) {
//label.Text = DetailRecord.Album;
}
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
NavigationItem.SetLeftBarButtonItem (new UIBarButtonItem(UIBarButtonSystemItem.Stop, (sender, args) => {
NavigationController.PopViewController(true);
}), true);
ConfigureView ();
//this.scrollview.BackgroundColor = UIColor.Gray;
// set pages and content size
scrollview.ContentSize = new SizeF ((float)(scrollview.Frame.Width * 2), (float)(scrollview.Frame.Height));
//this.scrollview.AddSubview ();
this.scrollview.Scrolled += ScrollEvent;
}
private void ScrollEvent(object sender, EventArgs e)
{
this.pagecontrol.CurrentPage = (int)System.Math.Floor(scrollview.ContentOffset.X / this.scrollview.Frame.Size.Width);
}
public override void DidReceiveMemoryWarning ()
{
base.DidReceiveMemoryWarning ();
// Release any cached data, images, etc that aren't in use.
}
}
}
因此,当我滑动屏幕时,我想要一个包含一些标签和文本字段的子视图,并替换原始标签和文本字段。它到目前为止工作正常,除了我无法弄清楚如何添加子视图,并使其大小适合不同的屏幕尺寸。
修改
继承人现在面临的问题,ScrollView中的观点很有趣,大约44f太高,所以他们让我上下拖动。我尝试设置各种约束,并手动将它们设置为-44较小,没有任何帮助。现在是一张问题的照片:
下面是我的约束集的截图。
答案 0 :(得分:1)
为此,您可能需要尝试以下步骤:
Top Space to Superview
,Bottom Space to Superview
和Leading Space to Superview
。接下来,按返回添加这些约束。0
。Top Space to Superview
,Bottom Space to Superview
和Trailing Space to Superview
。接下来,按返回添加这些约束。Horizontal Spacing
。确保其常量为0
且其Second Item
为View A.Trailing
且其First Item
为View B.Leading
。Equal Widths
。确保常量为0
。Equal Widths
。确保常量设置为0
。答案 1 :(得分:0)
为每个页面添加没有pagingEnabled的subScrollView,并将控件添加到subScrollView中!如果您在启用分页的情况下直接向scrollview添加控件,那么手势识别器的第一响应者似乎始终是scrollview,因此您的控件永远不会获取事件并且表现得像禁用!
UIScrollView有一个名为“pagingEnabled”的属性
在Interface Builder中,调整滚动视图的大小以允许页面控件下方有一些空间。接下来,从库中拖动UIPageControl,在滚动视图下方居中。调整UIPageControl的大小以占据视图的整个宽度。