मैं अपने स्क्रॉल दृश्य को प्राप्त करने की कोशिश कर रहा हूं"बल स्क्रॉल" के बिना मेरे पाठ के नीचे। इसलिए जब मैं नीचे स्क्रॉल करता हूं, तो शेष पाठ के निचले हिस्से तक पहुंचने से पहले दाईं ओर स्क्रॉल बार बंद हो जाता है। मुझे फिर से बल के साथ फिर से स्क्रॉल करना होगा (ताकि दाईं ओर स्क्रॉल बार, शेष पाठ का खुलासा हो)। उम्मीद है कि किसी ने इसका सामना किया हो। मैं स्क्रॉल को बाध्य नहीं करना चाहता हूं। मैं चाहता हूं कि यह सब साफ-सुथरे तरीके से प्रदर्शित हो।
UIScrollView *theScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 568.0f)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(17.0f, 150.0f, 286.0f, 568.0f)];
label.text = @" a very large portion of text ";
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont fontWithName:@"Chalkduster" size:16.0];
label.lineBreakMode = NSLineBreakByWordWrapping;
label.numberOfLines = 0;
[label sizeToFit];
[theScroll setShowsVerticalScrollIndicator:NO];
theScroll.contentSize = CGSizeMake(theScroll.contentSize.width, label.frame.size.height);
[theScroll addSubview:label];
[self.view addSubview:theScroll];
यह सब में है viewDidLoad
तरीका।
उत्तर:
जवाब के लिए 0 № 1दो चीजें डॉन 'टी काफी सही लगती हैं।
- आपने लेबल सेट कर दिया है
origin.y
सेवा मेरे150
। क्या आपके पास स्क्रॉल दृश्य के सामग्री क्षेत्र के ऊपर से लेबल शुरू होने का मतलब है? - आप स्क्रॉल दृश्य सेट करते हैं
contentSize.height
लेबल की ऊँचाई के समान होना। यह # 1 के साथ संघर्ष करता हैcontentSize.height
सभी सामग्री के लिए पर्याप्त लंबा होना चाहिए।
# 1 को सही मानते हुए, # 2 को इस प्रकार सेट किया जाना चाहिए:
theScroll.contentSize = CGSizeMake(theScroll.contentSize.width, CGRectGetMaxY(label.frame));
याद रखें, लेबल का निचला भाग इसकी मूल + ऊँचाई होगा, न कि केवल इसकी ऊँचाई।