Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
417 views
in Technique[技术] by (71.8m points)

iphone - ( Autoresizing mask ) flexible width of an image with fixed height

I have been playing around with iPhone interface building using only code and not using IB.

Now I'm facing the following problem:

How can I set an image to have a width based on the main view it is located on and to let it have a margin of for example 50 pixels on both sides. ( it should also work with rotation so the width should be flexible ).

I have tried setting the size with frame.size.width - 50 for example but this doesn't work when the screen rotates. Another thing I tried is using the autoresizing masks but I'm not completely understanding how this works.

Does one still need to set a frame for an image or is this completely overruled by the autoresizing masks? And if it's overruled how can I give the image a fixed height and a flexible width?

The book I'm using ( advanced iOS4 programming ) is not very clear in this matter and most examples I find on the net are for interface builder.

Thanks for your time.

Kind regards, Jasper

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Horizontally:

  • Resize keeping fixed left/right margins: UIViewAutoresizingFlexibleWidth
  • Keep size and same distance from the left: UIViewAutoresizingFlexibleRightMargin
  • Keep size, stay centered: UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin
  • Keep size and same distance from the right: UIViewAutoresizingFlexibleLeftMargin

Vertically:

  • Resize keeping fixed top/bottom margins: UIViewAutoresizingFlexibleHeight
  • Keep size and same distance from the top: UIViewAutoresizingFlexibleBottomMargin
  • Keep size, stay centered: UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin
  • Keep size and same distance from the bottom: UIViewAutoresizingFlexibleTopMargin

Combine one from the first section with one from the second with a |. For example, to have it resize horizontally and keep the same size and distance from the top vertically, you'd use UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin.

You can use other combinations to do some more tricky things, but those are the basics.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...