2012-06-24 9 views
11
हाल ही में मैं Xcode 4.5 (आईओएस 6), लेकिन जब अपनी परियोजनाओं मैं देखा है कि UIScrollView ठीक से काम नहीं कर रहा है में से एक के लिए जारी करने की कोशिश की, मुझे और अधिक स्पष्ट रूप से स्पष्ट करता हूं डाउनलोड किया है

:UIScrollView 6

मैं 'UIScrollView बना लिया है और निम्नलिखित कोड का उपयोग कर इसे प्रारंभ इससे जोड़ा गया:

-(void)viewDidLoad{ 

    [mainScrollView setScrollEnabled:YES]; 
    mainScrollView.contentSize = CGSizeMake(480, 0); 

    [super viewDidLoad]; 

} 

के बाद मैं अपने XIB खोला और एक UIScrollView करने mainScrollView जुड़ा हुआ है, के बाद मैं scrollView.When करने के लिए कुछ UIButton के जोड़ा मैं परियोजना का निर्माण mainScrollView स्क्रॉल कर रहा था लेकिन बटन दिखाई नहीं दिए, मेरा मतलब है, मैं बस उस बटन को देख सकता था जो पहले से ही डरावनी थी एन। मैं क्या गलत कर रहा हूं? मैं UIScrollView कैसे सेटअप कर सकता हूं?

+0

मुझे अभी भी यही समस्या थी। क्या यह आईओएस 6 एसडीके में एक बग हो सकता है? –

उत्तर

4

शायद आपने यह गलत टाइप किया है, लेकिन आपकी CGSize की ऊंचाई 0 है?

+0

बस लंबवत स्क्रॉलिंग को अक्षम करने के लिए! – Mateus

+1

क्या आप इसे आईबी में अक्षम नहीं कर सकते? या सिर्फ गुणों का उपयोग कर रहे हैं? CGSize चौड़ाई को 0 विचारों को खराब विचार की तरह सेट करना। – DGund

+0

यदि आप लंबवत स्क्रॉलिंग को अक्षम करना चाहते हैं, तो सामग्री की ऊंचाई को स्क्रॉल व्यू के आकार के समान सेट करें और लंबवत बाउंसिंग बंद करें। –

3

मुझे विश्वास है कि यह या तो एक्सकोड 4.5 या आईओएस 6 एसडीके के साथ एक बग है। जिस तरह से मैंने इसे तय किया था, वह प्रोग्रामिंग के रूप में मेरे UIScrollView में सबव्यू जोड़कर था।

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(400.0f, 10.0f, 60.0f, 30.0f); 
    [mainScrollView addSubView:button]; 
    mainScrollView.contentSize = CGSizeMake(480.0f, mainScrollView.frame.size.height); 
} 

इस कोशिश करो और मुझे पता है कि यह आपके लिए काम किया करते हैं:

तो आप की तरह कुछ करने के लिए होता है।

यदि आपके पास एक्सकोड का पुराना संस्करण है तो परिणाम देखने के लिए कोड और निब को दोहराना एक अच्छा विचार हो सकता है।

39

xcode 4.5 के लिए, यदि आप scrollView का उपयोग कर रहे हैं तो आपको फ़ाइल निरीक्षक में "use AutoLayout" अनचेक करना होगा।

या आप मीटर (कार्यान्वयन) फ़ाइल में फिर "AutoLayout का उपयोग करें", चाहते हैं, तो इस

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    theScroller.contentSize=CGSizeMake(1024.0,1300.0); 
} 
+1

धन्यवाद, धन्यवाद, धन्यवाद !! इस के साथ एक घंटे या उससे अधिक के लिए एक ईंट की दीवार के खिलाफ मेरे सिर को टक्कर लगी। फिर से धन्यवाद। – PaulJ

+2

ठीक है, तो ऑटोलायआउट का उत्तर यहां पाया गया है: http://stackoverflow.com/questions/12619786/embed-imageview-in-scrollview-with-auto-layout-on-ios-6 मूल रूप से, 'सामग्री आकार' को ले जाएं 'viewDidAppear' विधि को कोड। – PaulJ

+0

इस पोस्ट के लिए धन्यवाद !!!! मैंने सचमुच पूरे दिन जला दिया है। मैंने "ऑटोलाउट का उपयोग" अनचेक किया और आखिरकार मेरा स्क्रोल व्यू इसके जैसा काम करता है। मुझे जलता है ... टीवाई फिर से – tg2007

3

जोड़ने आप इसे ठीक करें और autolayout उपयोग करने के लिए करना चाहते हैं, करने के लिए अपने contentSize कोड के लिए कदम viewDidAppear विधि। मैं इस तो सवाल में जवाब मिला: Embed ImageView in ScrollView with Auto Layout on iOS 6

4

आप XCode 4.5 में ऑटो लेआउट के साथ यह कर सकते हैं लेकिन आप viewDidAppear

में अपने UIScrollView config मैं भी छवियों के साथ एक स्थिर UITableView में करते हैं।

नाम timg1.png, timg2.png की तरह अपनी छवियों ....

अपने ControllerView.h फ़ाइल

@property (weak, nonatomic) IBOutlet UIScrollView *Sv1; 
@property (weak, nonatomic) IBOutlet UIPageControl *Pc1; 

में

अपने ControllerView.m फ़ाइल

-(void)viewDidAppear:(BOOL)animated 
{ 

    //Scrollview 
    Sv1.delegate = self; 

    Sv1.contentSize = CGSizeMake(260, 176); 

    [self.Sv1 setBackgroundColor:[UIColor clearColor]]; 
    // ScrollViewGarten.frame = CGRectMake(9, 11, 283, 170); 
    [Sv1 setCanCancelContentTouches:NO]; 

    Sv1.multipleTouchEnabled = NO; 
    Sv1.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
    Sv1.clipsToBounds = YES; 
    Sv1.scrollEnabled = YES; 
    Sv1.pagingEnabled = YES; 

    NSUInteger nimagesTextil = 0; 
    CGFloat cxTextil = 0; 
    for (; ; nimagesTextil++) { 
     NSString *imageNameTextil = [NSString stringWithFormat:@"timg%d.png", (nimagesTextil + 1)]; 
     UIImage *imageTextil = [UIImage imageNamed:imageNameTextil]; 
     if (imageTextil == nil) { 
      break; 
     } 
     UIImageView *imageViewTextil = [[UIImageView alloc] initWithImage:imageTextil]; 

     CGRect rect = imageViewTextil.frame; 
     rect.size.height = 176; 
     rect.size.width = 260; 
     rect.origin.x = ((Sv1.frame.size.width - imageTextil.size.width)/2) + cxTextil; 
     rect.origin.y = ((Sv1.frame.size.height - imageTextil.size.height)/2); 

     imageViewTextil.frame = rect; 

     [Sv1 addSubview:imageViewTextil]; 

     cxTextil += Sv1.frame.size.width; 
    } 
    self.Pc1.numberOfPages = nimagesTextil; 
    [Sv1 setContentSize:CGSizeMake(cxTextil, [Sv1 bounds].size.height)]; 
    self.Pc1.currentPage = 0; 

} 
0

मैं में ऐसा करेंगे:

-(void)viewDidLayoutSubviews 
{ 
[self.scrollview setScrollEnabled:YES]; 
[self.scrollview setUserInteractionEnabled:YES]; 
[self.scrollview setContentSize:CGSizeMake(320, _y)]; 
[self.scrollview setAlwaysBounceVertical:YES]; 
} 

मैं क्लास वेरिएबल _y का उपयोग करता हूं क्योंकि मैं इसमें सभी सबव्यूज़ ऊंचाई जोड़ता हूं।