2009-08-17 11 views
15

यदि मुझे UIView का आकार बदलने या बदलने की आवश्यकता है, तो क्या निम्न से इसे करने का एक बेहतर तरीका है? = 100 एक गैर केवल पढ़ने के लिए संपत्ति के माध्यम से -UIViews का आकार बदलना

view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height - 100); 

या दूसरे शब्दों में, वहाँ एक रास्ता अभी view.frame.size.height कहने के लिए है?

उत्तर

25

आप -=100 प्रभाव चाहते हैं, बस करो:

CGRect frame = view.frame; 
frame.size.height -= 100; 
view.frame = frame; 

तो फिर तुम कुछ आप वास्तव में क्या आप को बदलने के लिए भी चाहते हैं बदल रहे हैं हो सकता है ..

उसके अलावा, मैं डॉन ऐसा नहीं लगता कि एक रास्ता है ..

10

ऊंचाई की सीधे हस्तक्षेप करने की कोई संपत्ति नहीं है।

ध्यान दें कि हर बार जब आप फोन यह view.frame प्रणाली को बुलाती है, तो आपके कोड के लिए बराबर है:

CGRect frame = view.frame; 
frame.size.height -= 100; 
view.frame = frame; 
+1

यह वर्तमान में चिह्नित सही से एक बेहतर उत्तर है। – hatfinch

+9

मैं वास्तव में नहीं कहता हूं, इसमें थोड़ी अधिक जानकारी है लेकिन अवियाद में कूलर आइकन है। –

3

उपयोग:

view.frame = CGRectMake([view frame].origin.x, [view frame].origin.y, [view frame].size.width, [view frame].size.height - 100); 

बजाय एक अलग चर में फ्रेम समायोजित करने पर विचार फ्रेम के सदस्यों को सुविधाजनक संपत्ति पहुंच प्राप्त करने के लिए यह UIView+position श्रेणी:

http://bynomial.com/blog/?p=24

संबंधित मुद्दे