나는 repeating myself을별로 좋아하지 않지만 실용적인 항목이 여러 층 있으면 혼란을 겪을 수 있지만 문제는 내게 매력적이며 이런 종류의 UI에 대한 틈새를 볼 수 있으므로 여기에 문제.
public class FunkyPage : ContentPage
{
public IList<string> ImagePaths { get; set; }
public FunkyPage()
{
Content = new StackLayout {
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
Spacing = 12,
Children = {
new Label { Text = "Foo" },
new Label { Text = "Bar" },
new Label { Text = "Baz" },
new Label { Text = "Qux" },
}
};
ImagePaths = new List<string> { "red.png", "green.png", "blue.png", "orange.png" };
}
}
iOS 용 렌더러는 다음과 같이 수 :
[assembly: ExportRenderer (typeof (FunkyPage), typeof (FunkyPageRenderer))]
public class FunkyPageRenderer : PageRenderer
{
UIScrollView bgCarousel = new UIScrollView (RectangleF.Empty) {
PagingEnabled = true,
ScrollEnabled=true
};
List<UIImageView> uiimages = new List<UIImageView>();
protected override void OnElementChanged (VisualElementChangedEventArgs e)
{
foreach (var sub in uiimages)
sub.RemoveFromSuperview();
uiimages.Clear();
if (e.NewElement != null) {
var page = e.NewElement as FunkyPage;
foreach (var image in page.ImagePaths) {
var uiimage = new UIImageView (new UIImage (image));
bgCarousel.Add (uiimage);
uiimages.Add (uiimage);
}
}
base.OnElementChanged (e);
}
public override void ViewDidLoad()
{
Add (bgCarousel);
base.ViewDidLoad();
}
public override void ViewWillLayoutSubviews()
{
base.ViewWillLayoutSubviews();
bgCarousel.Frame = View.Frame;
var origin = 0f;
foreach (var image in uiimages) {
image.Frame = new RectangleF (origin, 0, View.Frame.Width, View.Frame.Height);
origin += View.Frame.Width;
}
bgCarousel.ContentSize = new SizeF (origin, View.Frame.Height);
}
}
이 테스트되고
는 이제이 사용자 정의 회전 목마 배경으로 렌더링 할 (
Xamarin.Forms.
)
Page
가정하자 공장. UIPageControl (점)을 추가하는 것이 쉽습니다. 백그라운드의 자동 스크롤 역시 사소합니다.
프로세스가 Android에서 비슷하지만 무시가 약간 다릅니다.
소리가 멋지다. 당신이 어떻게 그 일을 시작하는지 알려주십시오. :) –
은 사용자가 상호 작용할 수있는 UI 요소입니까? 아니면 순전히 정보를 표시하기위한 것입니까? – Pete
대화식입니다. 몇 og 버튼과 라벨 기본적으로. – AHaahr