2012-12-10 31 views
10

मैंने कुछ समाधान देखा है, जिनमें से कोई भी मेरे मुद्दे के लिए काम नहीं किया है।प्रोग्रामिंग के रूप में UIButton को कैसे स्थानांतरित करें। उद्देश्य सी xCode

मेरे पास UIButton है जो स्टोरीबोर्ड संपादक में UIViewController में ड्रैग/ड्रॉप करके बनाया गया है।

UIButton उस दृश्य से जुड़े UIViewController के लिए .h फ़ाइल से जुड़ा एक आउटलेट है। यह .m फ़ाइल में भी संश्लेषित है।

@property (strong, nonatomic) IBOutlet UIButton *answerButton; 

मैं इस तरह के रन टाइम के दौरान बटन का स्थान बदलना चाहता हूं;

CGRect btFrame = answerButton.frame; 
btFrame.origin.x = xOne; 
btFrame.origin.y = yOne; 
answerButton.frame = btFrame; 

हालांकि जब भी मैं इसे आज़माता हूं, बटन स्थानांतरित करने से इंकार कर देता है।

अन्य सभी संपादन फ़ंक्शंस (जैसे setTitle आदि) कार्यात्मक हैं, लेकिन किसी कारण से फ्रेम नहीं बढ़ेगा कि मैं इसे कैसे चाहता हूं।

कोई अंतर्दृष्टि/सहायता की सराहना की जाएगी।

+0

इशारा कार्यक्षमता –

+3

का उपयोग करें यदि आप ऑटो-लेआउट का उपयोग कर रहे हैं? – Zaphod

+0

@ विकस, उपयोगकर्ता बटन नहीं ले जा रहा है। बटन की नियुक्ति पहले उनके द्वारा किए गए कुछ चयनों द्वारा निर्धारित की जाती है। xOne, yne 2 int मान हैं जो एक बिंदु बनाते हैं जो पहले किए गए चयनों के आधार पर बदला जाता है। मैं सिर्फ इन ज्ञात int मानों को फ्रेम सेट करने में सक्षम होना चाहता हूं। – SamBo

उत्तर

19

सीधे शब्दों में .. फ़ाइल निरीक्षक में "autolayout उपयोग" सही का निशान हटाएँ

4

नीचे दिए गए कोड को बदलें, जिसमें ऑटो आकार बदलने वाले मुखौटा को हटाने के लिए कोड शामिल है।

CGRect btFrame = answerButton.frame; 
btFrame.origin.x = xOne; 
btFrame.origin.y = yOne; 
answerButton.autoresizingMask = UIViewAutoresizingNone; 
answerButton.frame = btFrame; 
+3

अपने उत्तर की सराहना करें। कोशिश की, काम नहीं किया। – SamBo

+0

क्या आपने NSLog xOne किया था, और जांचें कि यह क्या है? –

7

ज फ़ाइल

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController{ 
    IBOutlet UIButton *theButton; 
} 
@property(nonatomic, strong) IBOutlet UIButton *theButton; 
-(IBAction)moveTheButton:(id)sender; 

@end 

मीटर फ़ाइल

-(IBAction)moveTheButton:(id)sender{ 
CGRect btFrame = theButton.frame; 
btFrame.origin.x = 90; 
btFrame.origin.y = 150; 
theButton.frame = btFrame; 

}

इस कोड को एक से दूसरे बिंदु से बटन ले जाता है।