我正在尝试实现一个界面,其中有五个页面可以在其间滑动和拖动,但您也可以通过点击底部的标签栏来更改页面。
我正在为CarouselPage编写自定义渲染器,但我无法在底部添加标签栏,因为iOS UITabBar需要和UIViewControllers数组之间切换,我只能访问这些页面。
这是我到目前为止所尝试的:
[assembly: ExportRenderer (typeof (ExtendedCarouselPage), typeof (ExtendedCarouselPageRenderer))]
namespace CustomRenderer.iOS
{
public class ExtendedCarouselPageRenderer : CarouselPageRenderer
{
protected UITabBar tabBar;
protected override void OnElementChanged (VisualElementChangedEventArgs e)
{
base.OnElementChanged (e);
tabBar = new UITabBar (new CGRect (0, this.View.Frame.Height * 0.9, this.View.Frame.Width, this.View.Frame.Height * 0.1));
tabBar.Items = new UITabBarItem[]{
new UITabBarItem("Hello",UIImage.FromFile("Homeicon.png"),UIImage.FromFile("HomeiconBlue.png")),
new UITabBarItem("World", UIImage.FromFile("Homeicon.png"),UIImage.FromFile("HomeiconBlue.png"))
};
tabBar.Bounds = new CGRect (0, this.View.Frame.Height * 0.9, this.View.Frame.Width, this.View.Frame.Height * 0.1);
tabBar.Frame = new CGRect (0, this.View.Frame.Height * 0.9, this.View.Frame.Width, this.View.Frame.Height * 0.1);
this.NativeView.AddSubview(tabBar);
}
}
}
问题是我找不到很多关于编写更复杂的自定义渲染器的指南。只有Xamarin IOS有很多,但很多代码不适用于自定义渲染器。