Dies kann eine ziemlich einfache Lösung, aber keiner der Vorschläge hier für mich arbeiten. Ich habe eine UIScrollView in einer UITableViewCell. Ich füge dynamische Bilder aus einer Liste in die Scrollansicht ein.Xamarin iOS - Passen scrollview den Inhalt in der Scrollview
public void InitViews()
{
scrollViewThumbNails.ContentSize =
new SizeF((float)scrollViewThumbNails.Frame.Size.Width/listCount * listCount,
(float)scrollViewThumbNails.Frame.Size.Height);
for (int i = 0; i < listCount; i++)
{
var imageView = new UIImageView
{
Frame = new RectangleF((float)i * (float)scrollViewThumbNails.Frame.Size.Width/listCount, 0,
(float)scrollViewThumbNails.Frame.Size.Width/listCount, (float)scrollViewThumbNails.Frame.Size.Height),
UserInteractionEnabled = true,
ContentMode = UIViewContentMode.ScaleAspectFit
};
//call method to load the images
var index = i;
imageView.SetImage(
url: new NSUrl(allItems[i].AbsoluteUri),
placeholder: UIImage.FromFile("placeholder.png"),
completedBlock: (image, error, type, url) =>
{
//when download completes add it to the list
if (image != null)
{
allImages.Add(image);
scrollViewThumbNails.AddSubview(imageView);
}
});
}
fand ich einen Vorschlag hier, die den Inhalt Größe des Scroll einstellen Ratschläge, bezogen auf die Gesamtzahl der Subviews in ViewDidAppear
wie folgt aus:
public override void ViewDidAppear (bool animated)
{
base.ViewDidAppear (animated);
CGRect contentRect = CGRect.Empty;
foreach(UIImageView view in scrollViewThumbNails.Subviews)
{
contentRect = CGRect.Union(contentRect,view.Frame);
}
scrollViewThumbNails.ContentSize = contentRect.Size;
}
Die imageViews noch angeordnet sind und tun, Beginnen Sie nicht am Bildschirmrand/Scrollview, wie in meinem Screenshot unten gezeigt. Ich möchte, dass das erste Bild immer am Ursprung des Scrollview positioniert ist und nicht den Abstand zwischen den einzelnen Bildern haben möchte. Wie kann ich die Bildlaufansicht basierend auf der Größe des Inhalts anpassen?
Kann mir jemand zeigen, was ich vermisse? Vielen Dank.