2016-08-21 1 views
0

Ich sehe dieses Thema an einigen Stellen, aber ich kann nicht herausfinden, warum genau mein Code nicht funktioniert.Ausrichtung von UIImageView innerhalb von UIScrollView

Ich habe ein Bild von einem künstlichen Horizont, der von -90 bis 90 Grad geht. Ich möchte es durch ein kleines Fenster sehen, das nur etwa -20 bis 20 Grad anzeigt. Dann möchte ich das Bild basierend auf dem Winkel, den mein Roboter lenkt, auf und ab bewegen.

Ich begann mit einem UIImage zu einem UIImageView hinzufügen. Die Ausrichtung ist korrekt. Dann dachte ich, der einfachste Weg, um das Bild nach oben und unten zu bewegen, wäre das Hinzufügen der UIImageView zu einem UIScrollView. Jetzt kann ich nicht herausfinden, wie man die Ausrichtung richtig macht. Ich sehe das Bild dort, wenn ich den Scrollview ziehe, aber sobald ich loslasse, geht es zurück zu dem, wo es war.

Hier ist der Code, den ich habe. Dies ist der erste Swift Code, den ich so geschrieben haben, wenn es einen besseren Weg, dies ich jeden Spott begrüßen zu tun (nur ein Scherz, sanft)

override func viewDidLoad() { 
    super.viewDidLoad() 

    let imageRect = CGRectMake(self.view.frame.width/2 - 100, self.view.frame.height/2, 200, 200) 

    self.myImageView = UIImageView.init() 
    self.myImageView = UIImageView(frame: imageRect) 
    self.myImageView.contentMode = UIViewContentMode.Center 
    self.myImageView.clipsToBounds = true 
    self.myImageView.image = UIImage.init(named:"horizon") 
    //self.view.addSubview(self.image) 


    self.myScrollView = UIScrollView(frame: imageRect) 
    self.myScrollView.contentSize = CGSize(width: imageRect.width, height: imageRect.height) 

    self.myImageView.center = self.myScrollView.center 
    self.myScrollView.frame = imageRect 
    self.myScrollView.backgroundColor = UIColor.blackColor() 
    self.myScrollView.contentOffset = CGPoint(x: 0, y: 0) 
    self.myScrollView.addSubview(self.myImageView) 
    self.view.addSubview(self.myScrollView) 

    ///////// 


    self.connectionStatusLabel.text = "Disconnected" 
    self.connectionStatusLabel.textColor = UIColor.redColor() 

    self.textBox.font = UIFont(name: self.textBox.font!.fontName, size: 8) 

    // Watch Bluetooth connection 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.connectionChanged(_:)), name: BLEServiceChangedStatusNotification, object: nil) 


    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.dataReceived(_:)), name: BLEDataChangedStatusNotification, object: nil) 


    // Start the Bluetooth discovery process 
    btDiscoverySharedInstance 
} 

Antwort

1

Sie haben die Scroll des Content auf die tatsächliche Bildgröße nicht gesetzt die Größe von imageView. Und stellen Sie die Bildansichtsgröße auch auf die tatsächliche Bildgröße ein:

let image = UIImage.init(named:"horizon") 
// Set the imageView's size to the actual image size 
self.myImageView.frame = CGRect(x: 0, y: 0, width: size.width, height: size.height) 
... 
... 
// Set the scrollView's contentSize to the actual image size 
self.myScrollView.contentSize = image.size 
Verwandte Themen