UIScrollView and Page Control for Images. Images not scaling to device size.










0















I'm having trouble getting my images to scale to different size devices. Using page control I am trying to create something like a horizontal scrolling photo album. I'm pretty certain I'm not setting the width and height right for my UIScrollView because the images and will only come out to the width and height of UIscrollView in my storyboard. The UIscrollView has no constraints in the storyboard because it needs dynamic and conform to the number of images.



This is an example of how it should look on all devices. This is on the iPhone 8 Plus



This is what happens on the iPad 12.9 inch. The concern is the image not going the full width of the screen and scaling the height and the page control dots which need to be in the center



Here is the code I have for what I am trying to do:



 @IBOutlet weak var imageScrollView: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!

// Create array to hold images and frame for the images
var buildingImages: [String] =
var frame = CGRect(x: 0, y: 0, width: 0, height: 0)

// Get index for the number of pages for page control

pageControl.numberOfPages=buildingImages.count
for index in 0..<buildingImages.count

let xPosition=self.view.frame.width * CGFloat(index)
frame.origin.x=xPosition

frame.size=imageScrollView.frame.size

// Initialize an image view and set it to an image, add image on top of scroll view
let buildingImageView=UIImageView(frame: frame)
buildingImageView.image=UIImage(named: buildingImages[index])

buildingImageView.pin_setImage(from: URL(string: buildingImages[index]))

self.imageScrollView.addSubview(buildingImageView)

/*
Set up content size of scroll view (get size of scroll view by
the amount of images in the scroll view
*/

imageScrollView.contentSize=CGSize(width: (imageScrollView.frame.size.width*CGFloat(buildingImages.count)), height: imageScrollView.frame.size.height)
imageScrollView.delegate=self

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
var pageNumber = scrollView.contentOffset.x/scrollView.frame.size.width
pageControl.currentPage=Int(pageNumber)










share|improve this question


























    0















    I'm having trouble getting my images to scale to different size devices. Using page control I am trying to create something like a horizontal scrolling photo album. I'm pretty certain I'm not setting the width and height right for my UIScrollView because the images and will only come out to the width and height of UIscrollView in my storyboard. The UIscrollView has no constraints in the storyboard because it needs dynamic and conform to the number of images.



    This is an example of how it should look on all devices. This is on the iPhone 8 Plus



    This is what happens on the iPad 12.9 inch. The concern is the image not going the full width of the screen and scaling the height and the page control dots which need to be in the center



    Here is the code I have for what I am trying to do:



     @IBOutlet weak var imageScrollView: UIScrollView!
    @IBOutlet weak var pageControl: UIPageControl!

    // Create array to hold images and frame for the images
    var buildingImages: [String] =
    var frame = CGRect(x: 0, y: 0, width: 0, height: 0)

    // Get index for the number of pages for page control

    pageControl.numberOfPages=buildingImages.count
    for index in 0..<buildingImages.count

    let xPosition=self.view.frame.width * CGFloat(index)
    frame.origin.x=xPosition

    frame.size=imageScrollView.frame.size

    // Initialize an image view and set it to an image, add image on top of scroll view
    let buildingImageView=UIImageView(frame: frame)
    buildingImageView.image=UIImage(named: buildingImages[index])

    buildingImageView.pin_setImage(from: URL(string: buildingImages[index]))

    self.imageScrollView.addSubview(buildingImageView)

    /*
    Set up content size of scroll view (get size of scroll view by
    the amount of images in the scroll view
    */

    imageScrollView.contentSize=CGSize(width: (imageScrollView.frame.size.width*CGFloat(buildingImages.count)), height: imageScrollView.frame.size.height)
    imageScrollView.delegate=self

    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
    var pageNumber = scrollView.contentOffset.x/scrollView.frame.size.width
    pageControl.currentPage=Int(pageNumber)










    share|improve this question
























      0












      0








      0








      I'm having trouble getting my images to scale to different size devices. Using page control I am trying to create something like a horizontal scrolling photo album. I'm pretty certain I'm not setting the width and height right for my UIScrollView because the images and will only come out to the width and height of UIscrollView in my storyboard. The UIscrollView has no constraints in the storyboard because it needs dynamic and conform to the number of images.



      This is an example of how it should look on all devices. This is on the iPhone 8 Plus



      This is what happens on the iPad 12.9 inch. The concern is the image not going the full width of the screen and scaling the height and the page control dots which need to be in the center



      Here is the code I have for what I am trying to do:



       @IBOutlet weak var imageScrollView: UIScrollView!
      @IBOutlet weak var pageControl: UIPageControl!

      // Create array to hold images and frame for the images
      var buildingImages: [String] =
      var frame = CGRect(x: 0, y: 0, width: 0, height: 0)

      // Get index for the number of pages for page control

      pageControl.numberOfPages=buildingImages.count
      for index in 0..<buildingImages.count

      let xPosition=self.view.frame.width * CGFloat(index)
      frame.origin.x=xPosition

      frame.size=imageScrollView.frame.size

      // Initialize an image view and set it to an image, add image on top of scroll view
      let buildingImageView=UIImageView(frame: frame)
      buildingImageView.image=UIImage(named: buildingImages[index])

      buildingImageView.pin_setImage(from: URL(string: buildingImages[index]))

      self.imageScrollView.addSubview(buildingImageView)

      /*
      Set up content size of scroll view (get size of scroll view by
      the amount of images in the scroll view
      */

      imageScrollView.contentSize=CGSize(width: (imageScrollView.frame.size.width*CGFloat(buildingImages.count)), height: imageScrollView.frame.size.height)
      imageScrollView.delegate=self

      func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
      var pageNumber = scrollView.contentOffset.x/scrollView.frame.size.width
      pageControl.currentPage=Int(pageNumber)










      share|improve this question














      I'm having trouble getting my images to scale to different size devices. Using page control I am trying to create something like a horizontal scrolling photo album. I'm pretty certain I'm not setting the width and height right for my UIScrollView because the images and will only come out to the width and height of UIscrollView in my storyboard. The UIscrollView has no constraints in the storyboard because it needs dynamic and conform to the number of images.



      This is an example of how it should look on all devices. This is on the iPhone 8 Plus



      This is what happens on the iPad 12.9 inch. The concern is the image not going the full width of the screen and scaling the height and the page control dots which need to be in the center



      Here is the code I have for what I am trying to do:



       @IBOutlet weak var imageScrollView: UIScrollView!
      @IBOutlet weak var pageControl: UIPageControl!

      // Create array to hold images and frame for the images
      var buildingImages: [String] =
      var frame = CGRect(x: 0, y: 0, width: 0, height: 0)

      // Get index for the number of pages for page control

      pageControl.numberOfPages=buildingImages.count
      for index in 0..<buildingImages.count

      let xPosition=self.view.frame.width * CGFloat(index)
      frame.origin.x=xPosition

      frame.size=imageScrollView.frame.size

      // Initialize an image view and set it to an image, add image on top of scroll view
      let buildingImageView=UIImageView(frame: frame)
      buildingImageView.image=UIImage(named: buildingImages[index])

      buildingImageView.pin_setImage(from: URL(string: buildingImages[index]))

      self.imageScrollView.addSubview(buildingImageView)

      /*
      Set up content size of scroll view (get size of scroll view by
      the amount of images in the scroll view
      */

      imageScrollView.contentSize=CGSize(width: (imageScrollView.frame.size.width*CGFloat(buildingImages.count)), height: imageScrollView.frame.size.height)
      imageScrollView.delegate=self

      func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
      var pageNumber = scrollView.contentOffset.x/scrollView.frame.size.width
      pageControl.currentPage=Int(pageNumber)







      xcode uiscrollview uiimage swift4 uipagecontrol






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 13 '18 at 22:44









      Noah VongphitNoah Vongphit

      11




      11






















          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53290635%2fuiscrollview-and-page-control-for-images-images-not-scaling-to-device-size%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53290635%2fuiscrollview-and-page-control-for-images-images-not-scaling-to-device-size%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Darth Vader #20

          How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

          Ondo