1

I place a UIProgressView on an XIB file. At first it goes well. After when I set its height via auto layout to be 20, problem occurred. The Progress View always got its position at the most top-left of the screen. even I use

[self.progress setFrame:CGRectMake(93, 100, self.scrollView.frame.size.width, self.scrollView.frame.size.height)];

still don't work for me at all.

Thank you very much for any help.

BlueBookBi.
  • 39
  • 2
  • 9

1 Answers1

0

use size constraints as outlets. Then you can easy change values of those constraints. It's not really recommended to modify frame when using auto-layout.

declare a property:

@property (strong, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint;

and in the implementation:

 self.heightConstraint = self.scrollView.frame.size.height;
 self.widthConstraint= self.scrollView.frame.size.width;

Alternatively you can try to set frame in viewDidLayoutSubviews but it's not recommended when using auto-layout.

Mobile Developer
  • 5,730
  • 1
  • 39
  • 45