স্টোরিবোর্ডে ইউআইএসক্রোলভিউ কীভাবে ব্যবহার করবেন


125

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


1
হাই হাই সবাই দয়া করে নীচের মন্তব্যগুলি দেখুন এটি করার জন্য। আমি এটি 2 বছর আগে লিখেছিলাম এবং xCode অনেক পরিবর্তন হয়েছে। এখনই এটি করার অন্যান্য উপায় রয়েছে তাই সচেতন হন। আইওএস 7 এবং আইওএস 8 সমাধান মন্তব্যগুলিতে প্রস্তাবিত
অ্যালেক্স রেইনোল্ডস

এখানে আবার 2 বছর পরে এখনও এটি কীভাবে কাজ করে না বা অটোলেআউট আরও ভাল হয় সে সম্পর্কে মন্তব্য পেয়েছি। মূল প্রশ্নটি আইওএস 5/6 এ কীভাবে করবেন। আমি কেবল এই জন্য আজকাল অটোলেআউট ব্যবহার করি যাতে আপনারও উচিত / করা উচিত। সহায়তার জন্য অটোলেআউটে উত্তরগুলি দেখুন। যদি তারা সহায়ক হয় তবে দয়া করে অটোলেআউট উত্তরগুলিকে উঁচু করুন। সবাইকে ধন্যবাদ
অ্যালেক্স রেইনল্ডস

উত্তর:


149

আমি আমার নিজের প্রশ্নের উত্তর দিচ্ছি কারণ সমাধানটি সন্ধান করতে আমি কেবল ২ ঘন্টা ব্যয় করেছি এবং স্ট্যাকওভারফ্লো এই কিউএ স্টাইলে অনুমতি দেয়।

স্টোরিবোর্ডে এটি কীভাবে কাজ করা যায় তা এখানে শেষ করা শুরু করুন।

1: আপনার কাছে নিয়ামক দেখতে যান এবং ক্লিক করুন Attribute Inspector

2: Freeformইনফার্ডের পরিবর্তে আকার পরিবর্তন করুন ।

3: সেই স্টোরিবোর্ডের মূল দৃশ্যে যান, আপনার স্ক্রোলভিউ নয় বরং শীর্ষ স্তরের দেখুন।

4: ক্লিক করুন Size Inspectorএবং আপনার পছন্দসই আকারে এই দৃশ্য সেট করুন । আমি আমার উচ্চতা 1000 এ পরিবর্তন করেছি।

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

5: একটি স্ক্রোলভিউতে ফেলে দিন এবং এটি প্রসারিত করুন যাতে এটি সম্পূর্ণ দর্শন গ্রহণ করে। আপনার এখন আপনার ভিউ কন্ট্রোলারে একটি ভিউতে বসে 320,1000 আকারের স্ক্রোলভিউ থাকা উচিত।

এখন আমাদের এটিকে স্ক্রোল করা দরকার এবং এটিকে সঠিকভাবে সামগ্রী প্রদর্শন করা দরকার।

6: আপনার স্ক্রোলভিউতে ক্লিক করুন এবং ক্লিক করুন Identity Inspector

7: User Defined runtime attributeএসইজেজে contentSizeটাইপের কিপ্যাথ সহ একটি যুক্ত করুন এবং আপনার সামগ্রীর আকার দিন। আমার জন্য এটি (320, 1000)।

যেহেতু আমরা স্টোরিবোর্ডে আমাদের পুরো স্ক্রোল ভিউটি দেখতে চাই আমরা এটি প্রসারিত করেছিলাম এবং এর ফ্রেম 320,1000 রয়েছে তবে এটি আমাদের অ্যাপ্লিকেশনটিতে কাজ করার জন্য আমাদের ফ্রেমটি দৃশ্যমান স্ক্রোলভিউটি কী হবে তা নীচে পরিবর্তন করতে হবে।

8: টাইপ আরসিটি এবং 0,0,320,416 runtime attributeসহ কীপথের frameসাথে একটি যুক্ত করুন ।

এখন আমরা যখন আমাদের অ্যাপ্লিকেশনটি চালাব তখন আমাদের কাছে একটি দৃশ্যমান স্ক্রোলভিউ থাকবে 0,0,320, 416 এর ফ্রেম এবং এটি 1000 এ স্ক্রোল করতে পারে We তারপরে আমাদের রানটাইম বৈশিষ্ট্যগুলি এটি সঠিকভাবে প্রদর্শন করা নিশ্চিত করে। কোডের 1 লাইন ছাড়াই এই সব।


5
আপনি যদি সঠিকভাবে স্ক্রোলভিউ অটোসাইজিং বৈশিষ্ট্যটি ব্যবহার করেন তবে আপনাকে বৈশিষ্ট্যটি সংজ্ঞায়িত করতে হবে না frame। আসলে, সমস্ত ডিভাইসের সঠিক আকার (আইফোন 5) নেই।
ট্রোনিক্স 117

Tronix117, তারপরে আপনি কীভাবে এই বৈশিষ্ট্যটি ছাড়াই এই সমস্যার সমাধান করবেন?
আন্দ্রেস হাটওয়ানি

2
যদি আইওএস 7 এর সমাধান থাকে তবে আমাকে জানান। এই উত্তরটি আইওএস 7 সামনে একটি বছর আগে পোস্ট করা হয়েছে আমি swamped করছি বা অন্য আমি iPhone5 এবং iOS7 জন্য এই আপডেট চাই
অ্যালেক্স রেনল্ডস

2
দ্রষ্টব্য: আইওএস 7 এর জন্য সমাধান স্ট্যাকওভারফ্লো.com
রাজা রাও

1
: নোট: জন্য আইওএস 8.3 উপর XCode 6.3, উত্তর এখানে stackoverflow.com/questions/26742230/...
T.Coutlakis

51

Auto Layoutএক্সকোড ৮.২.১ এ আমার জন্য যে পদক্ষেপগুলি কাজ করেছে তা এখানে ।

  1. নির্বাচন Size Inspectorনিয়ে View Controller, এবং পরিবর্তন Simulated Sizeকরতে Freeformউচ্চতার সঙ্গে সঙ্গে 1000 পরিবর্তে Fixed
  2. দৃশ্যে পুনঃনামকরণ View Controllerযেমন RootView
  3. একটি ড্র্যাগ Scroll Viewএর subview যেমন RootView এবং এটি নামান্তর ScrollView
  4. স্ক্রোলভিউয়ের জন্য সীমাবদ্ধতা যুক্ত করুন :
    • স্ক্রোলভিউ [শীর্ষ, নীচে, শীর্ষস্থানীয়, অনুসরণকারী ] = রুটভিউ [শীর্ষ, নীচে, শীর্ষস্থানীয়, পিছনে ]
  5. একটি ড্র্যাগ Vertical Stack Viewএর subview যেমন ScrollView এবং এটি নামান্তর ContentView
  6. কন্টেন্টভিউয়ের জন্য সীমাবদ্ধতা যুক্ত করুন :
    • কন্টেন্টভিউ .হাইট = 1000
    • কন্টেন্টভিউ [শীর্ষ, নীচে, শীর্ষস্থানীয়, প্রসারিত , প্রস্থ] = স্ক্রোলভিউ [শীর্ষ, নীচে, শীর্ষস্থানীয়, অনুগামী , প্রস্থ]
  7. নির্বাচন Attributes Inspectorএর ContentView , এবং পরিবর্তন Distributionকরার Fill Equallyপরিবর্তে Fill
  8. একটি ড্র্যাগ Viewএর subview যেমন ContentView এবং এটি নামান্তর RedView
  9. রেডভিউয়েরRed পটভূমি হিসাবে সেট করুন ।
  10. একটি ড্র্যাগ Viewএর subview যেমন ContentView এবং এটি নামান্তর BlueView
  11. ব্লুভিউয়েরBlue পটভূমি হিসাবে সেট করুন ।
  12. রুটভিউ নির্বাচন করুন এবং Update Framesবোতামটি ক্লিক করুন ।
    • Update Framesএক্সকোড 8-এ একটি নতুন বোতাম, Resolve Auto Layout Issuesবোতামের পরিবর্তে । দেখতে দেখতে রিফ্রেশ বোতামের মতো, স্টোরিবোর্ডের নীচে নিয়ন্ত্রণ বারে অবস্থিত: ফ্রেম বাটন আপডেট করুন

শ্রেণিবিন্যাস দেখুন:

  • RootView
    • ScrollView
      • ContentView
        • RedView
        • BlueView

নিয়ামক দৃশ্য দেখুন (উচ্চতা: 1000):

দৃশ্য

আইফোন 7 এ চালান (উচ্চতা: 1334/2):

ডেমো


আমি একই সমস্যাটি নিয়ে ভাবছি এবং ভাবছি যে আমার স্ক্রোলভিউটি রুটভিউয়ের আকার না হলে এটি কি কাজ করবে?
গ্যালাক্সিভিন্টেজ

তবে কথাটি হ'ল এটিতে
আইপ্যাডের

আমার মতো প্রারম্ভিকদের BlueViewশীর্ষে থেকে RedViewনীচের অংশে সেট করার জন্য একটি নোট (এক্সকোড ৮.২): ১) BlueView নীচে টেনে আনুন RedView(অর্থাত তারা ওভারল্যাপ বা 4 ধাপে কাজ করবে না) কাজ করবে না)। 2) নীচে পিন মেনু খুলুন। 3) শীর্ষ মার্জিন সীমাবদ্ধতার ডানদিকে ছোট তীরটি ক্লিক করুন। 4) RedViewসেই মেনু থেকে নির্বাচন করুন এবং মান 0 তে সেট করুন এটি পূর্ববর্তী এক্সকোড সংস্করণগুলির থেকে আলাদা যেখানে আপনি যেমন Editor-> Pin-> ...
01:51

শুধু কৌতূহল, আপনি কেন নিয়মিত ইউআইভিউয়ের পরিবর্তে উল্লম্ব স্ট্যাক ভিউ ব্যবহার করেন?
পরিবর্তনকারীরা

@ চেঞ্জার্স আমি UIStackViewবাধা নির্ধারণের ঝামেলা এড়াতে ব্যবহার করি ।
jqgsninimo

43

আইওএস 7 এবং এক্সকোড 5 এ আমার জন্য কাজ করা পদক্ষেপগুলি এখানে রয়েছে।

  1. একটি ভিউকন্ট্রোলার টেনে আনুন (এটি ইউআইভিউ "ভিউ" এর সাথে আসে)।

    1.1 "দেখুন কন্ট্রোলার" নির্বাচন করুন এবং "ফাইল ইন্সপেক্টর" নির্বাচন করুন এবং "অটো লেআউট" নির্বাচন করুন।

  2. একটি স্ক্রোলভিউ টেনে আনুন (ভিউকন্ট্রোলারের ইউআইভিউ "দেখুন" এর শিশু হিসাবে)
  3. স্ক্রোলভিউ নির্বাচন করুন এবং "পরিচয় পরিদর্শক" খুলুন।
  4. কীপথের জন্য "কন্টেন্টসাইজ" লিখুন। প্রকারের জন্য "আকার" নির্বাচন করুন। এবং মানটির জন্য 320, 1000। লিখুন ।

    দ্রষ্টব্য: চতুর্থ পদক্ষেপটি কেবল বলছে যে স্ক্রোলারটিতে এমন কিছু সামগ্রী রয়েছে যার আকার 320x1000 ইউনিট। সুতরাং কন্টেন্টসাইজ সেট করা স্ক্রোলারের কাজ করবে।

  5. কন্ট্রোলার দেখুন নির্বাচন করুন, "গুণাবলী পরিদর্শক" নির্বাচন করুন এবং তারপরে আকার থেকে ফ্রিফর্ম নির্বাচন করুন ।

    দ্রষ্টব্য: 5 তম ধাপ আমাদের "ভিউ" এর আকার পরিবর্তন করতে দেয় যা দর্শন নিয়ামকটি নিয়ে আসে।

  6. "দেখুন" নির্বাচন করুন এবং তারপরে "আকার পরিদর্শক" নির্বাচন করুন।

  7. প্রস্থ 320 এবং উচ্চতায় 1000 সেট করুন।

দ্রষ্টব্য: 5, 6 এবং 7 খালি স্টোরিবোর্ডের মধ্যে প্রসারিত বা সম্পূর্ণ প্রসারিত ভিউ দেখার জন্য আমাদের জন্য । দ্রষ্টব্য: ভিউ কন্ট্রোলারে "অটো লেআউট" নির্বাচন না করা নিশ্চিত করুন।

আপনার দর্শন শ্রেণিবদ্ধ দেখতে দেখতে হওয়া উচিত: যাজকতন্ত্র


3
এই কৌশলটি এখনও এক্সকোড 6.1 এবং আইওএস 8.1 হিসাবে কাজ করে।
ক্রিস হ্যারিস 18

1
অ্যামেজিং। এর জন্য ধন্যবাদ. উল্লিখিত হিসাবে অবশ্যই Xcode 6.1 এবং iOS 8.1 এ কাজ করে।
শঙ্কর কাউরা

45
ঠিক আছে ... তাহলে আমাদের যদি অটোলেটআউট দরকার হয় তবে কী হবে?
পোস্টকোডিজম

1
মাচ ভাল উত্তর .. ধন্যবাদ!
স্টিফমা

1
IOS 8 এ অটো বিন্যাস এবং আকার বর্গ জন্য সমাধান stackoverflow.com/questions/26742230/...
jithin

13

কয়েক ঘন্টা পরীক্ষা এবং ত্রুটির পরে, আমি লিখিত সামগ্রীগুলিকে 'অফস্ক্রিন' এ রাখার একটি খুব সহজ উপায় খুঁজে পেয়েছি। এক্সকোড 5 এবং আইওএস 7 দিয়ে পরীক্ষিত You আপনি 2 টি ছোট ছোট কৌশল / ওয়ার্কআরউন্ড ব্যবহার করে স্টোরিবোর্ডে এটি প্রায় পুরোপুরি করতে পারেন:

  1. আপনার স্টোরিবোর্ডে একটি ভিউকন্ট্রোলার টেনে আনুন।
  2. এই ভিউকন্ট্রোলারের উপর একটি স্ক্রোলভিউ টেনে আনুন, ডেমোর জন্য আপনি পুরো স্ক্রিনটি coveringেকে তার আকারটি ডিফল্ট রেখে যেতে পারেন।
  3. এখন কৌশলটি 1 আসে : স্ক্রোলভিউতে কোনও উপাদান যুক্ত করার আগে একটি নিয়মিত 'ভিউ'-এ টেনে আনুন (এই দৃশ্যটি স্ক্রিনের চেয়ে বড় হবে এবং এতে বোতাম, লেবেল, যেমন সমস্ত উপ উপাদান থাকবে ... আসুন এটি কল করুন ' ঘেরের দৃশ্য ')।
  4. উদাহরণস্বরূপ 800 টি আকারের পরিদর্শকের মধ্যে এই ঘেরের দৃশ্যের ওয়াই আকারটি যাক ।
  5. এনকোলেসিং ভিউতে কোনও লেবেল ফেলে দিন, কোথাও Y অবস্থান 200 এ, নামটি 'লেবেল 1' দিন।
  6. কৌতুক 2 : নিশ্চিত করুন পরিক্ষেপ দৃশ্য নির্বাচিত হয় ( না scrollView! , এবং, উদাহরণস্বরূপ -250 জন্য তার ওয়াই অবস্থান স্থাপন করেন তখন আপনাকে একটি আইটেম যে 'বাহিরে' পর্দায় রয়েছে যোগ করতে পারেন যাতে)
  7. কোনও লেবেলে ড্রপ করুন, স্ক্রিনের নীচে কোথাও, এর নাম রাখুন 'লেবেল 2'। এই লেবেলটি আসলে 'অফ স্ক্রিন'।
  8. সংলগ্ন দৃশ্যের Y অবস্থানটি 0 এ পুনরায় সেট করুন, আপনি আর স্ক্রিনের বাইরে অবস্থান করায় লেবেল 2 দেখতে পাবেন না।

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

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.scrollView.contentSize = CGSizeMake(320, 800);
}

আপনি একটি contentSizeকীপ্যাথটিকে একটি হিসাবে যুক্ত করে এটি করার চেষ্টা করতে পারেনsize পরিচয় পরিদর্শকের স্ক্রোলভিউতে করে এটিকে (320, 1000) সেট করে চেষ্টা করতে পারেন।

আমি মনে করি অ্যাপলটিকে স্টোরিবোর্ডে আরও সহজ করা উচিত, একটি টেবিলভিউ কনট্রোলারের মধ্যে আপনি কেবল স্টোরিবোর্ডে অফস্ক্রিন স্ক্রল করতে পারেন (কেবলমাত্র 20 টি ঘর যুক্ত করুন এবং আপনি দেখতে পাবেন যে আপনি কেবল স্ক্রোল করতে পারবেন), এটিও একটি স্ক্রোলভিউ কনট্রোলারের মাধ্যমে সম্ভব।


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

গতিশীল কন্টেন্টসাইজ পরিবর্তন সম্পর্কে কী কারণ সমস্ত আইফোন ভিন্ন আকারের সাথে আসে
বীরেশ কুমার

8

আইওএস 7 এবং এক্স-কোড 5 এ আইওএস 7 এবং অটো-লেআউটটিতে কাজ করতে স্ক্রোলিং পাওয়া।

এটি ছাড়াও: https://stackoverflow.com/a/22489795/1553014

স্পষ্টতই, আমাদের যা করা দরকার তা হ'ল:

  1. সমস্ত সীমাবদ্ধতা স্ক্রোল ভিউতে সেট করুন (যেমন প্রথমে স্ক্রোল ভিউটি ঠিক করুন)

  2. তারপরে স্ক্রোলভিউয়ের সীমাবদ্ধতার জন্য নীচের সর্বাধিক আইটেমটিতে স্ক্রোল দেখুন (যা সুপার ভিউ) const

দ্রষ্টব্য: দ্বিতীয় ধাপ স্টোরিবোর্ডটি বলবে যেখানে লিখিত সামগ্রীর শেষ অংশটি স্ক্রোল দৃশ্যের মধ্যে রয়েছে।


7

এই উদাহরণস্বরূপ, আমি ইন্টারফেস বিল্ডারের অটোলেআউট বৈশিষ্ট্যটি চেক করেছি। এবং, আমি এখনও ব্যবহার করছি (কোনও কারণ ছাড়াই) এক্সকোডের অপেক্ষাকৃত পুরানো 4.6.1 সংস্করণ।

এমন কোনও ভিউ কন্ট্রোলার দিয়ে শুরু করুন যার উপরে স্ক্রোল ভিউ রয়েছে (মূল দৃশ্য)।

1: অবজেক্ট লাইব্রেরি থেকে স্ক্রোল ভিউতে একটি ধারক ভিউ যুক্ত করুন। লক্ষ্য করুন যে স্টোরিবোর্ডে একটি নতুন ভিউ কন্ট্রোলার যুক্ত হয়েছে এবং এটি স্ক্রোল দৃশ্যের সাথে ভিউ কন্ট্রোলারের সাথে যুক্ত রয়েছে।

2: ধারক ভিউ নির্বাচন করুন এবং আকার পরিদর্শকের উপর, এটি অ্যাঙ্করটিকে শীর্ষে এবং অটো আকার পরিবর্তন ছাড়াই বামে করুন।

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

3: এর উচ্চতা 1000 এ পরিবর্তন করুন ((1000 এই উদাহরণের জন্য ব্যবহৃত হয় You আপনার প্রয়োজনীয় মানটি প্রয়োগ করা উচিত))

4: নতুন ভিউ কন্ট্রোলারটি নির্বাচন করুন এবং অ্যাট্রিবিউট ইন্সপেক্টর থেকে, আকারটি ফ্রিফোমে পরিবর্তন করুন।

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

5: নতুন ভিউ কন্ট্রোলারের ভিউ নির্বাচন করুন এবং আকার পরিদর্শকের উপর, উচ্চতাটি 1000 তে পরিবর্তন করুন (যা ধারক দেখার উচ্চতার সমান)।

6: আপনার পরীক্ষার জন্য পরে, নতুন ভিউ নিয়ন্ত্রকের দৃশ্যে থাকা অবস্থায়, উপরে এবং দেখার নীচে একটি লেবেল যুক্ত করুন।

7: আসল ভিউ কন্ট্রোলার থেকে স্ক্রোল ভিউ নির্বাচন করুন। পরিচয় পরিদর্শকের উপর, কন্টেন্টসাইজে সেট করা কীপথের সাথে একটি বৈশিষ্ট্য যুক্ত করুন, আকারে সেট করুন টাইপ করুন, এবং মানটি {320, 1000} (অথবা আপনার ধারক দৃশ্যের আকার) এ সেট করুন।

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

8: 4 ইঞ্চি আইফোন সিমুলেটর চালান। আপনার উপরের লেবেল থেকে নীচে লেবেল পর্যন্ত স্ক্রোল করতে সক্ষম হওয়া উচিত।

9: 3.5 ইঞ্চি আইফোন সিমুলেটারে চলুন। আপনার উপরের লেবেল থেকে নীচে লেবেল পর্যন্ত স্ক্রোল করতে সক্ষম হওয়া উচিত।

মনে রাখবেন যে Xcode 4.6.1 কেবল iOS6 এবং এর জন্য তৈরি করতে পারে। এই পদ্ধতিটি এবং আইওএস 6 এর জন্য বিল্ডিং ব্যবহার করে, অ্যাপ্লিকেশনটি iOS7 এ চালিত হওয়ার পরে আমি একই ফলাফলগুলি অর্জন করতে সক্ষম হয়েছি।


5

মনে রাখবেন যে এর মধ্যে UITableView, আপনি কোনও ঘর বা কোনও উপাদান নির্বাচন করে এবং আপনার ট্র্যাকপ্যাড দিয়ে উপরে বা নীচে স্ক্রোল করে টেবিলভিউটি স্ক্রোল করতে পারেন।

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


4

আপনার কেবলমাত্র এই নমুনার মতো ভিউডিডঅ্যাপারে বিষয়বস্তু আকারের সম্পত্তি সেট করা উচিত:

- (void)viewDidAppear:(BOOL)animated{

     [super viewDidAppear:animated];
     self.scrollView.contentSize=CGSizeMake(306,400.0);

}

এটি অটোলেআউট সমস্যাগুলি সমাধান করে এবং iOS7 এ সূক্ষ্মভাবে কাজ করে।


দ্রষ্টব্য: অ্যালেক্স জাভাটোন কোড না লিখে কন্টেন্টসাইজ সেট করার একটি বিকল্প উপায় দেয়।
স্টেভ

4

দাবি অস্বীকার: - শুধুমাত্র আইওএস 9 এবং তদুর্ধের জন্য (স্ট্যাক ভিউ)।

আপনি যদি আইওএস 9 টিতে আপনার অ্যাপ্লিকেশন স্থাপন করছেন তবে স্ট্যাক ভিউ ব্যবহার করুন । পদক্ষেপগুলি এখানে:

  1. সীমাবদ্ধতা সহ একটি স্ক্রোল ভিউ যুক্ত করুন - তদারকিতে (বামে) থেকে বামে, ডান, নীচে, শীর্ষে (মার্জিন ছাড়াই) পিন করুন
  2. স্ক্রোল ভিউতে একই বাধা সহ একটি স্ট্যাক ভিউ যুক্ত করুন।
  3. স্ট্যাক ভিউ অন্যান্য সীমাবদ্ধতা: - স্ট্যাকভিউ.বটম = ভিউ.বটম এবং স্ট্যাকভিউ.উইথথ = স্ক্রোলভিউ.উইথ
  4. আপনার মতামত যুক্ত শুরু করুন। স্ক্রোল ভিউ স্ট্যাক ভিউ (যা মূলত আপনার সামগ্রী দেখুন) এর আকারের ভিত্তিতে স্ক্রোল করার সিদ্ধান্ত নেবে

1
এটি একটি দরকারী কৌশল, যা আপনাকে ম্যানুয়ালি যোগ করতে হবে এমন বাধাগুলির সংখ্যা হ্রাস করে। সাধারণভাবে, স্ক্রোলিংয়ের উপায় হ'ল বিষয়বস্তুর আকার নির্ধারণের জন্য অটোলেআউটের পর্যাপ্ত বাধা রয়েছে তা নিশ্চিত করা। স্ট্যাক ভিউ আপনার পক্ষে সেই সীমাবদ্ধতার অনেক কিছু করে। spacingসাবউভিউ (শিশুদের) এর মধ্যে কিছু জায়গা রাখতে স্ট্যাক সেট করুন । যদি মাত্র দুটি সাবভিউয়ের মধ্যে আরও স্থানের প্রয়োজন হয় তবে একটি "স্পেসার" শিশু যুক্ত করুন: নির্দিষ্ট আকারের সাথে স্বচ্ছ ইউআইভিউ করুন।
স্টেভ

4

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

  1. একটি ভিউকন্ট্রোলারের মূল দৃশ্যের ভিতরে একটি ইউআইএসক্রোলভিউ .োকান

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

  3. স্ক্রোলভিউয়ের ভিতরে একটি ধারক দর্শন রাখুন। আপনি যা চান তার উচ্চতা সেট করুন (যেমন 1000)

  4. ধারকটিতে একটি উচ্চতার সীমাবদ্ধতা (1000) যুক্ত করুন যাতে এটির আকার পরিবর্তন হয় না। নীচের অংশটি ফর্মের শেষের দিকে চলে যাবে।

  5. লাইনটি যোগ করুন [স্ব.স্ক্রোলভিউ সেটকন্টেন্টসাইজ: সিজি সাইজমেক (320, 1000)]; স্ক্রোলভিউ (যা আপনি আইবিআউটলেট হিসাবে আঁকিয়েছেন) রয়েছে এমন ভিউ কন্ট্রোলারের কাছে

কনটেইনারটির সাথে সম্পর্কিত ভিউ কন্ট্রোলার (স্বয়ংক্রিয়ভাবে যুক্ত) এর ইন্টারফেস বিল্ডারে পছন্দসই উচ্চতা (1000) থাকবে এবং মূল ভিউ কন্ট্রোলারে সঠিকভাবে স্ক্রোল করবে। আপনি এখন নিয়ন্ত্রণগুলি বিন্যাস করতে ধারকটির ভিউকন্ট্রোলার ব্যবহার করতে পারেন।


আমি এই উত্তরটি অগ্রাহ্য করেছি কারণ আমি কৌশলটি পছন্দ করি; তবে আমি বিশ্বাস করি যে আপনি ফ্রিফর্ম ভিসি আইওএসের সংস্করণ নির্বিশেষে স্ক্রোলিংয়ে হস্তক্ষেপ সম্পর্কে ভুল। আইওএস 6 দিয়ে শুরু করে (যা অটো লেআউট যুক্ত করেছে), অন্যান্য উত্তরে নথিভুক্ত হিসাবে সম্পূর্ণ প্রতিবন্ধকতার একটি সম্পূর্ণ সেট স্ক্রোল করবে । আমি মনে করি না যে ফ্রিফর্ম হস্তক্ষেপ করে (যদিও আমি এটি চেষ্টা করেছিলাম না)। সম্ভবত আপনি কিছু অ-সুস্পষ্ট বাধা হারিয়েছিলেন; স্ক্রোলভিউ + অটোলআউট হ্যাক কিছুটা।
স্টেভ

3

আমি গ্রহণযোগ্য উত্তরের জন্য আমার 5 সেন্ট রাখতে চাই: আমি 2 দিন ধরে বিষয় নিয়ে গবেষণা করছি এবং অবশেষে এমন একটি সমাধান পেয়েছি যা আমি এখন থেকে সর্বদা ব্যবহার করব

গৃহীত উত্তরে আইটেম 4 এ যান এবং ফ্রেম এবং বিষয়বস্তুগুলির বৈশিষ্ট্যগুলি এবং এগুলি যুক্ত করতে ভুলে যান

এই লিঙ্কটি থেকে সবকিছুকে স্বয়ংক্রিয়ভাবে সমাধান ব্যবহার করুন use

সবকিছু পরিষ্কার, সহজ, মার্জিত এবং আইওএস 7-তে আকর্ষণীয় কাজ করে i'm



আপনার সমাধান (যদি আপনি আপনার লিঙ্কটি শেষ অবধি অনুসরণ করেন) কোডের একটি লাইন যুক্ত করা জড়িত, তাই এটি বিশেষত প্রশ্নের সাথে সামঞ্জস্য নয় - কেবল স্টোরিবোর্ড ব্যবহার করে
বরিস গফুরভ

@ বরিসগাফুরভ যাইহোক, আইওএস 7 এর সাথে কিছুটা পুরানো নয়। এবং এমবি এটি লাইনে নেই, তবে আমি নিশ্চিত যে এটি যাইহোক যাইহোক
বেশ কয়েকটি পিপিএলসকে

3

এখানে একটি সহজ সমাধান।

  1. স্টোরিবোর্ডে আপনার ভিউ কন্ট্রোলারের আকারের বৈশিষ্ট্যটি "ফ্রিফর্ম" এ সেট করুন এবং আপনি যে আকারটি চান সেটি সেট করুন। আপনার স্ক্রোল ভিউয়ের পুরো সামগ্রীতে ফিট করার পক্ষে এটি যথেষ্ট বড় তা নিশ্চিত করুন।

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

  3. এখনই নিশ্চিত হয়ে নিন যে স্ক্রোলভিউয়ের সাবভিউগুলিতে সীমাবদ্ধতা রয়েছে যা স্ক্রোল ভিউয়ের উপরের এবং নীচে সংযুক্ত রয়েছে। আপনার অনুভূমিক স্ক্রোলিং থাকলে বাম এবং ডানদিকে একই for

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


2

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


আইএমএইচও, এটির উত্তম উত্তর, স্ট্যাকওভারফ্লো এর নীতিগুলির বিপরীতে নয়, বিকল্প পদ্ধতির পরামর্শ দেওয়ার জন্য (যদি না ওপি সুনির্দিষ্টভাবে না বলে যে তারা তাদের সম্পর্কে জিজ্ঞাসা করার পদ্ধতিটি করা দরকার।) এবং স্ট্যাকওভারফ্লোয়ের বৃহত্তম মানটি অন্যান্য সমস্ত লোককে সহায়তা করছে যারা এগিয়ে আসছে এবং প্রশ্নোত্তর পড়ুন। :)
স্টেভ

0

স্পষ্টতই আপনার উচ্চতা নির্দিষ্ট করার দরকার নেই! এটি দুর্দান্ত কারণ যদি এটি কোনও কারণে পরিবর্তিত হয় (আপনি উপাদানগুলির আকার পরিবর্তন করুন বা ফন্টের আকার পরিবর্তন করেন)।

আমি শুধু এই টিউটোরিয়াল অনুসরণ এবং সবকিছু কাজ: http://natashatherobot.com/ios-autolayout-scrollview/

(পার্শ্ব দ্রষ্টব্য: আপনি ভিউটি কেন্দ্রীভূত করতে না চাইলে ভিডডিডলআউটসউবভিউগুলি প্রয়োগ করার প্রয়োজন নেই, সুতরাং পদক্ষেপের তালিকাটি আরও ছোট করা হবে)।

আশা করি এইটি কাজ করবে!


0

মূল বিষয়বস্তু আকার।

এটি প্রায়শই অনুপস্থিত থাকে এবং কোনও ইউআইএসক্রোলভিউ যুক্ত করার সময় এটি নির্দেশিত হয় না।

ইউআইএসক্রোলভিউ নির্বাচন করুন এবং পরিচয় পরিদর্শক নির্বাচন করুন।

একটি contentSizeহিসাবে একটি কীপথ যুক্ত করুনsizeপরিচয় পরিদর্শকের স্ক্রোলভিউতে এবং এটিকে সেট করুন (320, 1000)।

দূরে স্ক্রোল।


এটি একটি পদ্ধতির, এবং আমি নিজেই এটি ব্যবহার করেছি। তবে, আমি এটিকে পছন্দসই পদ্ধতির বিবেচনা করি না। সম্পূর্ণ প্রতিবন্ধকতার একটি সম্পূর্ণ সেট সরবরাহ করা "ক্লিনার / আরও নমনীয়", যেমন অটোলেআউট সামগ্রীটির আকার নিজেই গণনা করতে পারে। তিনটি বিকল্প: শীর্ষ থেকে নীচে-সীমাবদ্ধতা , বা স্ট্যাক ভিউ ব্যবহার করুন বা নীচের আইটেমের অবস্থানের প্রতিবন্ধকতা
স্টেভ

0

আপনি যদি সর্বোত্তম পদ্ধতির চেয়ে অটো-লেআউট ব্যবহার করছেন তবে স্টোরিবোর্ডে স্থির কক্ষগুলি সহ ইউআইটিএবলভিউ কনট্রোলার ব্যবহার করা।

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


0

এক্সকোড 11 ব্যবহার করে কীভাবে স্ক্রোলভিউ সেটআপ করবেন তা এখানে's

1 - স্ক্রোলভিউ যুক্ত করুন এবং শীর্ষ, নীচে, নেতৃস্থানীয় এবং অনুসরণের সীমাবদ্ধতা সেট করুন

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

2 - স্ক্রোলভিউতে একটি সামগ্রীর ভিউ যুক্ত করুন, সামগ্রী বিন্যাস গাইডের সাথে একটি সংযোগ টানুন এবং শীর্ষস্থান, শীর্ষ, নীচে এবং ট্রেলিং নির্বাচন করুন। এটির মানগুলি 0 বা আপনি চান ধ্রুবকগুলিতে সেট করা নিশ্চিত করুন।

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

3 - কন্টেন্ট ভিউ থেকে ফ্রেম লেআউট গাইড এ টানুন এবং সমান প্রস্থ নির্বাচন করুন

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

4 - সামগ্রী দর্শনে একটি উচ্চতার সীমাবদ্ধতা স্থির করুন

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