ইউআইএসক্রোলভিউ স্ক্রোলিং নয়


128

আমার একটিতে UIScrollViewঅনেকগুলি UIImageView, ইউআইএলবেলস ইত্যাদি রয়েছে ... লেবেলগুলি এর চেয়ে লম্বা UIScrollView, তবে আমি যখন অ্যাপটি চালনা করি তখন আমি ক্লিক করে নীচে স্ক্রোল করতে পারি না ...

কেন হতে পারে?

ধন্যবাদ


নতুন 3/26/2013 কোড ছাড়াই এটি করার সহজতর পথে আমি হোঁচট খেয়েছি (কনটেন্টসাইজ সেট করা) stackoverflow.com/a/15649607/1705353
ডিকি সিং ২

উত্তর:


169

একটি সম্পূর্ণ ওয়ার্কিং কোড স্নিপেট প্রদর্শন করা সর্বদা ভাল:

// in viewDidLoad (if using Autolayout check note below):

UIScrollView *myScrollView;
UIView *contentView;
// scrollview won't scroll unless content size explicitly set

[myScrollView addSubview:contentView];//if the contentView is not already inside your scrollview in your xib/StoryBoard doc

myScrollView.contentSize = contentView.frame.size; //sets ScrollView content size

সুইফট 4.0

let myScrollView
let contentView

// scrollview won't scroll unless content size explicitly set

myScrollView.addSubview(contentView)//if the contentView is not already inside your scrollview in your xib/StoryBoard doc

myScrollView.contentSize = contentView.frame.size //sets ScrollView content size

আমি আইবিতে কন্টেন্টসাইজ সেট করার কোনও উপায় খুঁজে পাইনি (এক্সকোড 5.0 হিসাবে)

দ্রষ্টব্য: আপনি যদি এই কোডটি দেওয়ার জন্য অটোলেআউটকে সবচেয়ে ভাল জায়গা ব্যবহার করেন তবে -(void)viewDidLayoutSubviewsপদ্ধতিটির মধ্যে রয়েছে।


12
myScrollView.delegate = selfALSO সেট করতে ভুলবেন না , যদি এটি এখনও কাজ করে না, তবে তার নীচের উত্তরটিতে দুর্দান্ত পরামর্শ রয়েছে (আপনার এক্সিব / স্টোরিবোর্ডে যান এবং নিশ্চিত করুন যে "অটোলাআউট" অক্ষম রয়েছে)। প্রো-টিপ: আপনি <UIScrollViewDelegate>যদি প্রোগ্রামটিমেটিকভাবে আপনার ইউআইএসক্রোলভিউতে স্ক্রোল করার মতো কিছু করতে চান তবে আপনি নিজের .h ফাইলে অন্তর্ভুক্ত করতে পারেন ।
অ্যালবার্ট রেনশওয়া

1
@ অ্যালবার্ট রেনশওয়ার আপনার একটি উত্তর যুক্ত করা উচিত ছিল তাই আমি আপনাকে একটি +1 দিতে পারতাম :) আমার সাথে অটোলআউটটি সমস্যা ছিল .... আমাকে 4 ঘন্টার মত পাগল করে দিয়েছে।
লগিকোলজিস্ট

2
কোড লাগানো viewDidLayoutSubviewsআমার পক্ষে কাজ করে।
আমর লটফাই

আমার জন্য সমস্যাটি হ'ল এটির স্ক্রোল করার দরকার নেই, কারণ সবকিছুই স্ক্রিনে ফিট করে।
ড্যানিয়েল স্প্রিঞ্জার

122

আপনি দৃশ্য আপনাকে সেট পরেও স্ক্রল না পারেন, তাহলে contentSize সঠিকভাবে, আপনি নিশ্চিত করুন আনচেক > ফাইল ইন্সপেক্টর - "স্বয়ংক্রিয়-বহির্বিন্যাস ব্যবহার" ইন্টারফেস বিল্ডার হবে।


164
বিকল্পভাবে, আপনি ভিউডিডলয়আউটসুভিউগুলিতে কন্টেন্টসাইজ সেট করতে পারেন : এবং অটোলেআউট সম্পূর্ণ হওয়ার পরে এটি প্রয়োগ করা হবে।
ক্রিস ভাসেল্লি

2
@ "ক্রিস ভাসেল্লি" আমার ইস্যুটিকে স্লভ করুন .. জিআর 8 .. :-)
আইয়াজ

3
ক্রিসের মন্তব্য আলাদা উত্তর হওয়া উচিত!
নিনজানির

1
আপনাকে অনেক ধন্যবাদ ক্রিস ভাসেল্লি! স্বতঃ লেআউট সক্ষম করার সাথে সাথে, এটি ভিডডিডলয়েডে কাজ করবে না তবে এটি ভিডিডলিআউটসুবউভিউগুলির সাথে করে!
রোমাইন

1
ওহ, আমি এই সমস্ত মন্তব্য আগে খেয়াল করা হয়নি! আমি আপনাকে অনেক সাহায্য করতে পারে খুশি! আমি কেবল একটি পৃথক উত্তর পোস্ট করেছি তাই আশা করি এটি সন্ধান করা আরও সহজ হবে।
ক্রিস ভাসেলি

68

আপনি সেট করতে হবে contentSizeসঠিকভাবে স্ক্রোল করার জন্য আপনাকে স্ক্রোল ভিউয়ের সম্পত্তি হবে।

আপনি স্বয়ংক্রিয়-বহির্বিন্যাস ব্যবহার করেন, তাহলে আপনি সেট প্রয়োজন contentSizeমধ্যে viewDidLayoutSubviewsঅনুক্রমে জন্য এটি স্বয়ংক্রিয়-বহির্বিন্যাস সম্পূর্ণ হওয়ার পর প্রয়োগ করতে হবে।

কোডটি এর মতো দেখতে পারে:

-(void)viewDidLayoutSubviews
{
    // The scrollview needs to know the content size for it to work correctly
    self.scrollView.contentSize = CGSizeMake(
        self.scrollContent.frame.size.width,
        self.scrollContent.frame.size.height + 300
    );
}

ধন্যবাদ এক টন .. এটি কাজ করেছিল কারণ কোনও কারণে, আমি যখন contentSizeআকারের মান সেট করেছিলাম তখনও contentViewস্ক্রোলভিউ এবং কনটেন্টভিউয়ের আকারটি একই হিসাবে সেট হয়ে গেছে বলে মনে হয়। তবে উচ্চতার contentSizeচেয়ে উচ্চতার মানকে সেট করে contentViewএটি কাজ করে।
স্কাইওয়াকার

viewDidLayoutSubviewsএকটি জীবনচক্রের সময় একাধিকবার কল করা যায় যাতে আপনি প্রত্যাশার চেয়ে উচ্চতা বাড়ানোর ঝুঁকিটি চালান।
anon_nerd

@ অ্যানন_নার্ড কেবল এটির জন্য ডাকা হয়েছিল কিনা তা যাচাই করে নিন এবং উচ্চতা যোগ না করলে কেবল যুক্ত করুন
ড্যানিয়েল স্প্রিংগার

45

উপরের উত্তরটি সঠিক - স্ক্রোলিংটি ঘটানোর জন্য সামগ্রীর আকার নির্ধারণ করা দরকার।

আপনি যদি ইন্টারফেস বিল্ডার ব্যবহার করে থাকেন তবে এটি করার জন্য ব্যবহারকারীর সংজ্ঞায়িত রানটাইম বৈশিষ্ট্য রয়েছে। উদাহরণ:

এখানে চিত্র বর্ণনা লিখুন


এটি আমার জন্য কিছুই করেনি।
coolcool1994

4
ওফস, পিকটি {0, 0 shows দেখায় তবে অবশ্যই আপনাকে অবশ্যই যথেষ্ট পরিমাণে রেখে দিতে হবে। । আপনি এই বিষয়বস্তু-আকারের সামনের অংশটি জানেন কেবলমাত্র এমন দৃশ্যের জন্য এই পদ্ধতির কাজ করবে। । । (বাস্তবে, জটিল দর্শনের জন্য আমি যাইহোক, বিশুদ্ধ কোডের প্রস্তাব দিই)।
জেসপার ব্লুজ

প্রোগ্রামগতভাবে এটি করার চেয়ে অনেক কম হ্যাকি। ধন্যবাদ!
জ্যাক স্টোফ্লার 23

1
@ জ্যাকস্টোফলার স্বাগতম! :) আইবি ব্যবহার করার সময়, আমি সমস্ত কনফিগারেশন সেখানে রাখতে চাই (খণ্ডিত নয়)। তবে যখন জিনিসগুলি জটিল হয়ে যায় (পুনরায় ব্যবহারযোগ্য ভিউ উইজেট; মডেল অ্যাডাপ্টার, স্তর ম্যানিপুলেশনস; সিএএনিমেশনস ইত্যাদি) তখন আমি পুরোপুরি প্রোগ্রাম্যাটিক দর্শন পছন্দ করি। । । আরও সাবলীল।
জ্যাস্পার ব্লুজ

আমি এটি চেষ্টা করেছি, যখন দৃশ্য প্রদর্শিত হবে তখন কাজ করে, তবে ওরিয়েন্টেশন পরিবর্তনের সময় উপরের স্ক্রিনে সংজ্ঞায়িত কন্টেন্টসাইজ উপেক্ষা করা হয় এবং আমার লগটি বলে যে কন্টেন্টসাইজ 0,0 সেট করা হয়েছে। কোন ধারণা কিভাবে যে ঠিক কিভাবে?
শুগল

40

সামগ্রীর আকারকে বিশাল সংখ্যায় আকার দেওয়ার চেষ্টা করুন। আমার সামগ্রীর আকার নিয়ন্ত্রণ আকারের চেয়ে বড় বলে মনে হলেও কেন আমার স্ক্রোল ভিউ স্ক্রল করে না understand আমি আবিষ্কার করেছি যে যদি সামগ্রীর আকার প্রয়োজনের চেয়ে ছোট হয় তবে এটি কার্যকর হয় না।

self.scrollView.contentSize = CGSizeMake(2000, 2000);

2000 এর পরিবর্তে আপনি আপনার নিজের বড় সংখ্যা রাখতে পারেন। এবং যদি এটি কাজ করে তবে এর অর্থ হ'ল আপনি পুনরায় আকার দেওয়ার সময় আপনার সামগ্রীর আকার যথেষ্ট পরিমাণে বড় নয়।

কাজ করার জন্য স্ক্রোল ভিউয়ের জন্য প্রতিনিধিটির প্রয়োজন হয় না।


2
জিনিয়াস - কী চলছে তা যাচাই করার জন্য একটি সহজ উপায়। একটি গুচ্ছ ধন্যবাদ!
ক্রেজি চিম্প

13

আপনার কাছে স্ক্রোল ভিউয়ের কন্টেন্টসাইজ সম্পত্তি সঠিক আকারে সেট করা আছে তা নিশ্চিত করুন (যেমন, আপনার সমস্ত সামগ্রীকে পরিবেষ্টনের জন্য যথেষ্ট বড় একটি)


1
আমি কি এই অগ্রগতিতে করতে হবে? বা আমি আইবিতে এটি করতে পারি?
চিহ্নিত করুন

আপনি যদি আইবি ব্যবহার করছেন তবে আপনি সেখান থেকে সেট করতে পারেন - নীচে দেখুন। । (পৃথক উত্তর, যাতে আমি ছবিগুলি অন্তর্ভুক্ত করতে পারি)।
জ্যাস্পার ব্লুজ

7

'ব্যবহার অটোলেআউট' আনচেক আমার জন্য কৌশলটি করেছে।

পরিবেশ: xCode 5.0.2 স্টোরিবোর্ডগুলি ios7


5

আমার ক্ষেত্রে আমাকে delaysContentTouchesসত্য হিসাবে সেট করতে হয়েছিল কারণ স্ক্রোলভিউয়ের অভ্যন্তরীণ অবজেক্টগুলি সমস্ত স্পর্শ ইভেন্টগুলি ক্যাপচার করেছিল এবং স্ক্রোলভিউ নিজেই এটিকে হ্যান্ডেল না করার পরিবর্তে নিজেকে পরিচালনা করছে।


আমি একই সমস্যা। আমার জন্য সমস্যাটি হ'ল দেরি কনটেন্টটিচগুলি সত্যে পরিণত করে আপনি আপেল পেন্সিল দিয়ে নিম্নমানের আঁকাগুলি দিয়ে শেষ করবেন। তবে এটি একটি প্রান্তের মামলা :) বেশিরভাগ ক্ষেত্রেই এটি সমস্যাটি সমাধান করে
রোমনে

4

সেট contentSizeসম্পত্তির UIScrollviewমধ্যে ViewDidLayoutSubviewsপদ্ধতি। এটার মতো কিছু

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    scrollView.contentSize = CGSizeMake(view.frame.size.width, view.frame.size.height)
}

3

স্ক্রোল ভিউ কেন স্ক্রল হচ্ছে না এই ধারণাটি আপনি স্ক্রোল ভিউয়ের আকারের চেয়ে কম স্ক্রোল করার জন্য সামগ্রীর আকার নির্ধারণ করেছেন যা ভুল। স্ক্রোল করার সময় নেভিগেট করার জন্য আপনার সামগ্রীর আকারটি আপনার স্ক্রোল ভিউয়ের আকারের চেয়ে বড় সেট করা উচিত।

জুমিংয়ের সাথে একই ধারণাটি, আপনি জুমিংয়ের জন্য ন্যূনতম এবং সর্বাধিক মান নির্ধারণ করেন যা জুমিং ক্রিয়াকলাপের মাধ্যমে প্রয়োগ করা হবে।

স্বাগত :)


3

সর্বোপরি একটি ছোট সংযোজন, আপনার স্ক্রোল ভিউ স্ক্রল না হওয়ার কারণগুলি হ'ল প্রকৃত কারণ তবে কখনও কখনও নির্বোধের কারণেই বিশেষত যখন কারণ হতে পারে কোডের মাধ্যমে স্ক্রোলভিউ যুক্ত করা হয় এবং আইবি নয়, আপনি আপনার সাবভিউগুলি প্যারেন্ট ভিউতে যুক্ত করেছেন এবং না স্ক্রোলভিউ এর ফলে সাবউভি স্ক্রোল না হওয়ার কারণ হয়ে থাকে

এবং সামগ্রীর আকার সেট করুন এবং পিতামাতার ভিউ ফ্রেমের চেয়ে বড় রাখুন (দুহ !!)


3

আমি আমার প্রথম চেষ্টাতে এটি কাজ করেছিলাম। স্বয়ংক্রিয় বিন্যাস এবং সমস্ত কিছু সহ, কোনও অতিরিক্ত কোড নেই। তারপরে একটি সংগ্রহের দৃশ্য কলাতে চলেছিল, রান সময়ে ক্র্যাশ হয়ে, আমি কী ভুল ছিল তা খুঁজে পেলাম না, তাই আমি এটি মুছে ফেলা এবং পুনরায় তৈরি করেছি (আমি এক্সকোড 10 বিটা ব্যবহার করছি 4 এটি একটি বাগের মতো অনুভূত হয়েছিল) এবং তারপরে স্ক্রোলিংটি চলে যায়। কালেকশন ভিউ আবার কাজ করেছে, যদিও!

অনেক ঘন্টা পরে .. এটি আমার জন্য এটি ঠিক করে দিয়েছে। আমার নিম্নলিখিত লেআউটটি ছিল:

UIView

  • সুরক্ষিত এলাকা
  • স্ক্রোল ভিউ
    • সামগ্রী দেখুন view

সবই সীমাবদ্ধতায়। নিরাপদ অঞ্চল স্বয়ংক্রিয়ভাবে সিস্টেম দ্বারা সংজ্ঞায়িত করা হয়। সবচেয়ে খারাপ ক্ষেত্রে স্ক্রল এবং কন্টেন্ট মতামত জন্য সব সীমাবদ্ধতা মুছে ফেলুন এবং না না আইবি রিসেট / তাদের কাছে আপনার জন্য তৈরি আছে। এগুলি ম্যানুয়ালি তৈরি করুন, এটি কাজ করে।

  • স্ক্রোল ভিউয়ের জন্য আমি করেছি: নিরাপদ অঞ্চলে ট্রেলিং / শীর্ষ সারিবদ্ধ করুন। সমান প্রস্থ / উচ্চতা থেকে নিরাপদ অঞ্চল
  • বিষয়বস্তু দেখার জন্য আমি করেছি: পর্যবেক্ষণে শীর্ষস্থানীয় / শীর্ষস্থান / শীর্ষ / নীচের সারিবদ্ধ করুন (স্ক্রোল দেখুন)

মূলত ধারণাটি হ'ল কনটেন্ট ভিউ ফিটিং স্ক্রোলভিউ, যা নিরাপদ অঞ্চলকে ফিট করে।

কিন্তু যেমন এটি কাজ করে না। সামগ্রী ভিউটি উচ্চতা মিস করেছে। আমি সব আমি পারতাম এবং শুধুমাত্র এক কৌতুক করছেন একটি হয়েছে চেষ্টা নিজেই সামগ্রী দেখতে উচ্চতা নির্মিত কন্ট্রোল- টেনে সামগ্রী দেখতে .. । এটি একটি নির্দিষ্ট উচ্চতা সংজ্ঞায়িত করেছে, যার মানটি ভিউ কন্ট্রোলারের আকার থেকে গণনা করা হয়েছে (ফ্রিফর্ম হিসাবে সংজ্ঞায়িত, বাস্তব প্রদর্শনীর চেয়ে দীর্ঘতর, আমার সমস্ত পূর্বরূপগুলি ধারণ করে) এবং শেষ পর্যন্ত এটি আবার কাজ করে!


তোমাকে অসংখ্য ধন্যবাদ! আপনি ঠিক কেমন অনুভব করেছেন তা আমি জানি .. ;-)
মিশেল ডাল'আগটা

থায়াক্স, আমি অনেক ঘন্টা ব্যয় করেছি এবং এটি আমার সমস্যার সমাধান করেছে
Andoni Da Silva

3

যদি আপনি কোনও বার্তা পেয়ে থাকেন (আইওএস 8 / সুইফ্ট) যা viewDidLayoutSubviewsবিদ্যমান নেই, তবে পরিবর্তে নিম্নলিখিতটি ব্যবহার করুন

override func viewDidAppear(animated: Bool)

এটি আমার জন্য এটি স্থির করে দিয়েছে


2

এমন কিছু যা আগে উল্লেখ করা হয়নি!

নিশ্চিত করুন যে আপনার আউটলেটটি সঠিকভাবে স্ক্রোলভিউয়ের সাথে সংযুক্ত ছিল! এটিতে একটি ভরাট চেনাশোনা থাকা উচিত, তবে আপনি যদি বৃত্ত পূরণ করেছেন তবে স্ক্রোলভিউ সংযুক্ত নাও হতে পারে - তাই ডাবল চেক করুন! চেনাশোনাটি ঘুরে দেখুন এবং দেখুন প্রকৃত স্ক্রোলভিউটি হাইলাইট হয়েছে কিনা! (এটি আমার জন্য কেস ছিল)

//Connect below well to the scrollView in the storyBoard
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;

2

কোড টি বেশিরভাগ সময় সঠিক হয় যদি আপনি কোনও টিউটোরিয়াল অনুসরণ করে থাকেন তবে যা অনেক শিক্ষানবিশ জানেন না তা হ'ল স্ক্রোলভিউ সিমুলেটারের মাধ্যমে সাধারণত স্ক্রোল করে না । মনে করা হয় আপনি কেবল মাউসপ্যাডে নীচে টিপুন এবং একই সাথে স্ক্রোল করবেন তখন sc অনেক অভিজ্ঞ এক্সকোড / সুইফট / ওবজে-সি ব্যবহারকারী এই কাজটি করতে এতটাই অভ্যস্ত এবং তাই তারা জানেন না কীভাবে এটি সম্ভবত প্রাথমিকভাবে অগ্রাহ্য করা যায়। সিওও :-)

@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
    super.viewDidLoad()
    view.addSubview(scrollView)
    // Do any additional setup after the view
}

override func viewWillLayoutSubviews(){
    super.viewWillLayoutSubviews()
    scrollView.contentSize = CGSize(width: 375, height: 800)
}

এই কোডটি যতক্ষণ না আমি উপরে উপরে বলেছি ততক্ষণ পুরোপুরি সূক্ষ্মভাবে কাজ করবে


1

যদি অন্য কোনও সমাধান আপনার জন্য কাজ না করে তবে ডাবল পরীক্ষা করে দেখুন যে আপনার স্ক্রোল ভিউটি আসলে একটি UIScrollView ইন্টারফেস বিল্ডারে একটি।

গত কয়েক দিনের এক পর্যায়ে, আমার UIScrollView স্বতঃস্ফূর্তভাবে প্রকারটি এ- তে পরিবর্তিত হয়েছিল UIView, যদিও এর ক্লাসটি UIScrollViewপরিদর্শকের মধ্যে বলা হয়েছিল। আমি ব্যাবহার করছিXcode 5.1 (5B130a)

আপনি হয় একটি নতুন স্ক্রল দৃশ্য তৈরি করতে পারেন এবং পুরানো ভিউ থেকে পরিমাপ, সেটিংস এবং সীমাবদ্ধতার কপি, অথবা আপনি নিজে একটি থেকে আপনার ভিউ পরিবর্তন করতে পারেন UIScrollViewমধ্যে xibফাইল। আমি একটি তুলনা করেছিলাম এবং নিম্নলিখিত পার্থক্যগুলি পেয়েছি:

মূল:

<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" directionalLockEnabled="YES" bounces="NO" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wsk-WB-LMH">
...
</scrollView>

স্বতঃস্ফূর্তভাবে পরিবর্তনের পরে:

<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" customClass="UIScrollView" id="qRn-TP-cXd">
...
</view>

সুতরাং আমি <view>আমার মূল <scrollView>লাইনের সাথে লাইনটি প্রতিস্থাপন করেছি ।

আমিও দৃশ্য ঘনিষ্ঠ ট্যাগ প্রতিস্থাপিত </view>সঙ্গে </scrollView>

এক্ষেত্রে আইডিটিকে বর্তমান দৃশ্যের মতোই রাখার বিষয়টি নিশ্চিত করুন: id = "qRn-TP-cXd"।

অ্যাপ্লিকেশন থেকে প্রাপ্ত ডেটা মুছে ফেলে আমাকে এক্সকোডের ক্যাশে থেকে xib ফ্লাশ করতে হয়েছিল:

  • Xcode->Window->Organizer->Projects, উত্পন্ন ডেটা লাইনে আপনার প্রকল্পটি চয়ন করুন, মুছুন ক্লিক করুন ...

বা যদি কোনও ডিভাইস ব্যবহার করে থাকে:

  • Xcode->Window->Organizer->Device, আপনার ডিভাইস-> অ্যাপ্লিকেশনগুলি চয়ন করুন, আপনার অ্যাপ্লিকেশনটি চয়ন করুন, ক্লিক করুন (-)

এখন প্রকল্পটি পরিষ্কার করুন এবং সিমুলেটর / ডিভাইস থেকে অ্যাপটি সরান:

  • Xcode->Product->Clean
  • এটি মুছে ফেলতে iOS Simulator/device->pressএবং ধরে রাখুন app->click(এক্স)

তারপরে আপনার অ্যাপ্লিকেশনটি তৈরি এবং চালাতে সক্ষম হবেন এবং আবার স্ক্রোলিং কার্যকারিতা থাকা উচিত।

পিএস আমাকে স্ক্রোল ভিউ এর সামগ্রীর আকার সেট করতে viewDidLayoutSubviewsবা অটো লেআউটটি বন্ধ করতে হয়নি, তবে ওয়াইএমএমভি।


1

যদি আপনার কোনও প্রকারের scrollViewএকটি সংক্ষিপ্তসার হয় containerView, তবে নিশ্চিত হন যে আপনার scrollViewফ্রেম বা সীমার মধ্যে রয়েছে containerView। আমার কাছে containerView.clipsToBounds = NOএখনও ছিল যা আমাকে স্ক্রোলভিউটি দেখতে দিয়েছে তবে scrollViewএটি সীমার মধ্যে ছিল নাcontainerView এটির স্পর্শ ইভেন্টগুলি সনাক্ত করতে পারে না।

উদাহরণ স্বরূপ:

containerView.frame = CGRectMake(0, 0, 200, 200);
scrollView.frame = CGRectMake(0, 200, 200, 200);
[containerView addSubview:scrollView];
scrollView.userInteractionEnabled = YES;

আপনি স্ক্রোলভিউ দেখতে সক্ষম হবেন তবে এটি ব্যবহারকারীর ইন্টারঅ্যাকশন গ্রহণ করবে না।


1

viewDidLayoutSubviewsঅটোলেআউট সহ আমার জন্য নিম্নলিখিত কোড যুক্ত করা worked সমস্ত উত্তর চেষ্টা করার পরে:

- (void)viewDidLayoutSubviews
{
    self.activationScrollView.contentSize = CGSizeMake(IPHONE_SCREEN_WIDTH, 620);

}

//set the height of content size as required

1

পদ্ধতির সাথে UIScrollViewDelegateযুক্ত কোডটি যুক্ত করুন এবং viewDidAppearএটি আমার জন্য স্থির করে।

@interface testScrollViewController () <UIScrollViewDelegate>

-(void)viewDidAppear:(BOOL)animated {
    self.scrollView.delegate = self;
    self.scrollView.scrollEnabled = YES;
    self.scrollView.contentSize = CGSizeMake(375, 800);
}

1

আমার সমস্যাটি এর দ্বারা সমাধান করা হয়েছিল:

  1. স্ক্রোলভিউতে কন্টেন্টসাইজ সেট করে একটি বড় উচ্চতায়
  2. তবে এছাড়াও আমাকে স্ক্রোলভিউয়ের মধ্যে দেখাতে শীর্ষে এবং / অথবা নীচের সীমাবদ্ধতাগুলিও ঠিক করতে হয়েছিল, যার অর্থ স্ক্রোল সূচকগুলি স্ক্রিনে প্রদর্শিত হয়েছিল তবে সামগ্রীটি স্ক্রোল হয়নি meant

একবার আমি নিরাপদ অঞ্চল এবং / অথবা তত্ত্বাবধানে আবদ্ধ শীর্ষ এবং / বা নীচের সীমাবদ্ধতাগুলি সরিয়ে ফেললে স্ক্রোলভিউয়ের অভ্যন্তরীণ দর্শনগুলি আবার স্ক্রোল করতে পারে এবং স্ক্রিনের নীচের অংশে স্থির থাকে না!

আশা করি এটি এই বিশেষ সমস্যাটির সাথে কয়েক ঘন্টা ব্যথা থেকে অন্য কাউকে থামিয়ে দিয়েছে।


1

আরও একটি মজার ঘটনা:

স্ক্রোলভিউ.সুপারভিউ.ইউসারআইন্ট্রিএকশন অবশ্যই সক্ষম হওয়া উচিত

আমি পিতামাতাকে ইউআইআইমেজভিউটি সনাক্ত করার জন্য এটির পিছনে পিছনে 2 + ঘন্টা নষ্ট করেছি, যা স্বাভাবিকভাবেই ব্যবহারকারীর অন্তর্নিহিতকরণ সক্ষম হয়েছে == মিথ্যা


0

এই থ্রেডে প্রদত্ত উত্তরের সাথে ব্যর্থ হওয়ার পরে, সমাধানের সাথে আমি এই নিবন্ধটিতে হোঁচট খেয়েছি।

অটোলেআউট দিয়ে স্ক্রোলভিউ সেট আপ করার বিষয়ে দুটি জিনিস স্বজ্ঞাত নয়:

  1. কনটেন্ট ভিউ এবং স্ক্রোলভিউয়ের মধ্যে মার্জিন হিসাবে আপনি যে সীমাবদ্ধতা স্থাপন করেছেন তা কন্টেন্টভিউয়ের আকারকে প্রভাবিত করে না। তারা সত্যিই মার্জিন। এবং এটিকে কাজ করতে কন্টেন্টভিউয়ের একটি নির্দিষ্ট আকার থাকতে হবে।
  2. স্থির আকারের কৌশলটি হ'ল আপনি স্ক্রোলভিউয়ের পিতামাতার সমান কন্টেন্টভিউয়ের প্রস্থ সেট করতে পারেন। কেবল বাম দিকে গাছের উভয় দর্শন নির্বাচন করুন এবং সমান প্রস্থের সীমাবদ্ধতা যুক্ত করুন।

এটি সেই নিবন্ধটির সংক্ষিপ্তসার। চিত্র সহ সম্পূর্ণ ব্যাখ্যার জন্য, এটি পরীক্ষা করে দেখুন।


@ প্রেরাগমনোজ্লোভিক এটি এর থেকে আরও সাধারণ কীভাবে পাবেন? অটো-লেআউটটি ব্যবহার করে সঠিকভাবে কাজ করতে স্ক্রোলভিউটি পেতে পেতাম এটি way
এইচ ডি জঞ্জে

0

আমি দেখতে পেলাম যে এই অটোলআউট ইস্যুটি দিয়ে ... আমি যদি ক্লাসের পরিবর্তে কেবল ViewControllerব্যবহারটি করি ... তবে কেবল একটি নিজেকে যুক্ত করুন ... এটি কাজ করে।UIViewUIScrollViewUIScrollView


0

আইবিতেও আমার একই সমস্যা ছিল।

স্ক্রোলভিউর শীর্ষস্থানীয়, পিছনে, শীর্ষ এবং নীচেটি তার সুপারভিউতে সেট করার পরে। আমি কনটেইনারভিউ স্ক্রোলযোগ্য করার জন্য নিম্নলিখিত পরিবর্তনগুলি করেছি, যা কাজ করেছে।

স্ক্রোলভিউকে কেবল অনুভূমিক দিকের দিকে স্ক্রোল করতে স্ক্রোলভিউয়ের কেন্দ্রের সাথে সীমাবদ্ধ করুন Y = কনটেইনারভিউয়ের কেন্দ্র Y

এবং এটিকে উল্লম্বভাবে স্ক্রোলযোগ্য করতে স্ক্রোলভিউয়ের কেন্দ্র x = কনটেইনারভিউ'র কেন্দ্রে এক্স করুন make

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.