একসাথে প্রতিবন্ধকতাগুলি পূরণ করতে অক্ষম, সীমাবদ্ধতা ভেঙে পুনরুদ্ধার করার চেষ্টা করবে


145

নীচে আমি ত্রুটি বার্তাটি ডিবাগ অঞ্চলে পেয়েছি। এটি ঠিকঠাক চলে এবং আমি এই ত্রুটিটি গ্রহণ করি এ ছাড়া কিছুই ভুল হয় না। এটি কি অ্যাপলটিকে অ্যাপ্লিকেশনটি গ্রহণ করতে বাধা দেবে? আমি কীভাবে এটি ঠিক করব?

2012-07-26 01:58:18.621 Rolo[33597:11303] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x887d630 h=--& v=--& V:[UIButtonLabel:0x886ed80(19)]>",
    "<NSAutoresizingMaskLayoutConstraint:0x887d5f0 h=--& v=--& UIButtonLabel:0x886ed80.midY == + 37.5>",
    "<NSAutoresizingMaskLayoutConstraint:0x887b4b0 h=--& v=--& V:[UIButtonLabel:0x72bb9b0(19)]>",
    "<NSAutoresizingMaskLayoutConstraint:0x887b470 h=--& v=--& UIButtonLabel:0x72bb9b0.midY == - 0.5>",
    "<NSLayoutConstraint:0x72bf860 V:[UILabel:0x72bf7c0(17)]>",
    "<NSLayoutConstraint:0x72c2430 UILabel:0x72bfad0.top == UILabel:0x72bf7c0.top>",
    "<NSLayoutConstraint:0x72c2370 UILabel:0x72c0270.top == UILabel:0x72bfad0.top>",
    "<NSLayoutConstraint:0x72c22b0 V:[UILabel:0x72bf7c0]-(NSSpace(8))-[UIButton:0x886efe0]>",
    "<NSLayoutConstraint:0x72c15b0 V:[UILabel:0x72c0270]-(NSSpace(8))-[UIRoundedRectButton:0x72bbc10]>",
    "<NSLayoutConstraint:0x72c1570 UIRoundedRectButton:0x72bbc10.baseline == UIRoundedRectButton:0x7571170.baseline>",
    "<NSLayoutConstraint:0x72c21f0 UIRoundedRectButton:0x7571170.top == UIButton:0x886efe0.top>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x72bf860 V:[UILabel:0x72bf7c0(17)]>

Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.

1
এই ত্রুটিটি কেবলমাত্র এক্সকোড ৪.৫ এই ঘটবে, সুতরাং আপনি এটিকে অ্যাপ স্টোরে যাইহোক জমা দিতে পারবেন না (এটি প্রকাশ না হওয়া পর্যন্ত)
বার্নডেন

তাহলে কি আর কিছু ভুল নেই? এবং অ্যাপ স্টোরে জমা দিতে সক্ষম হতে কি এক্সকোডের অন্য একটি সংস্করণ ব্যবহার করা সম্ভব হবে?
জনি কক্স

1
হ্যাঁ, কিছু ভুল আছে, তবে এটি অপ্রাসঙ্গিক কারণ এটি আইওএসের এমন একটি বৈশিষ্ট্য সহকারে করতে হয়েছে যা পাবলিক এক্সকোড সংস্করণগুলিতে এখনও উপলভ্য নয়। যদি এটি ৪.৪ দিয়ে সংকলিত হয় তবে আপনি এটি সংস্করণ ব্যবহার করে মুক্তি দিতে পারেন (এটি আজ প্রকাশিত হয়েছিল)।
বোরার্ডেন

আমি এক্সকোড ৪.৪ এ ওএস এক্স অ্যাপ্লিকেশনগুলির জন্য এই ত্রুটি বার্তাটি পেয়েছি। আমি এটা বুঝতে পারি না।
স্টিভ ম্যাকলিউড

@ বার্তোমিয়েজ সেমাসেকেক আপনি যে কোনও সুযোগে রুমে যোগ দিতে পারবেন: chat.stackoverflow.com/rooms/92522/autolayout- and-ios ? দুঃখিত এটি এলোমেলো তবে কিছু অটো লেআউট সম্পর্কিত সম্পর্কিত আপনার পরামর্শকে প্রশংসা করবে, ধন্যবাদ!
চিজনাড

উত্তর:


275

আমি ডিবাগ করার পরামর্শ দেব এবং কোন সীমাবদ্ধতাটি "আপনি যা চান না" এটি সন্ধান করার পরামর্শ দেব । ধরুন আপনার নিম্নলিখিত সমস্যা রয়েছে:

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

সর্বদা সমস্যাটি কীভাবে নিম্নলিখিত সীমাবদ্ধতা এবং দর্শনগুলি খুঁজে পাওয়া যায়।

এটি করার জন্য দুটি সমাধান রয়েছে:

  1. ডেবগ ভিউ হিরিচ্যুরি (এইভাবে সুপারিশ করবেন না)

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

  • ডিবাগ ভিউ হায়ারার্কি ব্যবহার করে অ্যাপটি বন্ধ করুন :

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

  • যথাযথ ইউআইভিউ দেখুন:

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

  • পরেরটি NSLayoutConstraint সন্ধান করা যা আমরা যত্ন করি:

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

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

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

আপনার যদি প্রয়োজন হয় তবে অ্যাড্রেস পয়েন্টার ব্যবহার করে এটি কনসোলেও মুদ্রণ করতে পারেন:

(lldb) po 0x17dce920
<UIView: 0x17dce920; frame = (10 30; 300 24.5); autoresize = RM+BM; layer = <CALayer: 0x17dce9b0>>

প্রতিটি প্রতিবন্ধকতার জন্য আপনি একই করতে পারেন ডিবাগার আপনাকে নির্দেশ করবে :-) এখন আপনি এটি স্থির করে নিন decide

  1. এটি আরও ভাল প্রিন্ট করুন (আমি সত্যিই এইভাবে প্রস্তাব দিই, এটি এক্সকোড 7 এর)

    • আপনার দৃষ্টিতে প্রতিটি সীমাবদ্ধতার জন্য অনন্য শনাক্তকারী সেট করুন:

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

  • এর জন্য সহজ এক্সটেনশন তৈরি করুন NSLayoutConstraint:

সুইফট :

extension NSLayoutConstraint {

    override public var description: String {
        let id = identifier ?? ""
        return "id: \(id), constant: \(constant)" //you may print whatever you want here
    }
}

উদ্দেশ্য গ

@interface NSLayoutConstraint (Description)

@end

@implementation NSLayoutConstraint (Description)

-(NSString *)description {
    return [NSString stringWithFormat:@"id: %@, constant: %f", self.identifier, self.constant];
}

@end
  • এটি আবার তৈরি করুন, এবং এখন আপনার জন্য আরও পঠনযোগ্য আউটপুট রয়েছে:

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

  • একবার আপনি পেলেid আপনার অনুসন্ধান ন্যাভিগেটরে এটি সাধারণভাবে আলতো চাপতে পারেন :

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

  • এবং দ্রুত এটি সন্ধান করুন:

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

কীভাবে ফিক্সটি সহজ করবেন?

  • পরিবর্তন করার চেষ্টা করুন অগ্রাধিকার করতে 999ভাঙা বাধ্যতা জন্য।

এটি আমার বাগ ঠিক করেছে ... অনেক অনেক ধন্যবাদ। আপনি উদ্দেশ্য সি এর জন্য এটি কীভাবে করবেন? একটি বিভাগ যুক্ত করবেন?
চেজনাড

সমাধানের জন্য থ্যাক্স, তবে আমি কী সি এক্সটেনশন ব্যবহার করতে পারি?
dev.nikolaz

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


3
আমি ২ য় উপায় পছন্দ করি এবং ভাঙ্গা সীমাবদ্ধতার
সন্ধানের

108

NSAutoresizingMaskLayoutConstraints এর মধ্যে আপনার সমস্যাটি হওয়া উচিত নয়। এটি স্প্রিংস এবং স্ট্রুটসের পুরানো ব্যবস্থা। এ থেকে মুক্তি পেতে, আপনি যে প্রতিবন্ধকতা তৈরি করতে চান তা প্রতিটি ভিউতে এই পদ্ধতিটি চালান:

[view setTranslatesAutoresizingMaskIntoConstraints:NO];

5
কোনও ট্রান্সলেটসঅটোরাইজিংমাস্কিন্টো কনট্রেন্টস সেট করার সময় কোনও দৃশ্য একেবারেই উপস্থিত না হওয়ার কিছু কারণ কী?
টপউইক

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


আমি যখন এই সম্পত্তিটি সেট করি তখনই এই ঘটে থাকে, drive.google.com/file/d/0BxuYs8WHXCF7bV9ndHFrQ0dMYVE/… আমি এই কোড লাইনটি ব্যবহার করছি: [সেল্ফ-কন্টেন্টভিউ সেটট্রান্সলেটসঅ্যাটোরাইজিং ম্যাসকআইন্টো কনট্রেন্টস: না]; (স্ব-কনটেন্টভিউ.সুবিউভিউগুলিতে ইউআইভিউ * দেখুন) {[সেটট্রান্সলেটসঅটোরাইজিংমাস্কিন্টো কনস্ট্রাইটস দেখুন: না]; } আগে এটি দেখতে দেখতে ব্যবহৃত হত: drive.google.com/file/d/0BxuYs8WHXCF7OWlvZGQwN3FlbzQ/… এটি কাজ করেছে, তবে আমার অবশ্যই বলা উচিত।
rptwsthi

28

সতর্কতা অবলম্বন করুন , আপনি একই দিক এবং প্রকারে একাধিক বাধা ব্যবহার করবেন না।

উদাহরণস্বরূপ: পিছনে = 15 এর জন্য উল্লম্ব সীমাবদ্ধতা এবং অন্যটি> = 10।

কখনও কখনও, এক্সকোড এমন কিছু প্রতিবন্ধকতা তৈরি করে যা আপনি লক্ষ্য করেন না । আপনাকে অপ্রয়োজনীয় বাধা থেকে মুক্তি পেতে হবে এবং লগ সতর্কতা অবশ্যই অদৃশ্য হয়ে যাবে।

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

সংযোজন, আপনি সরাসরি কিছু লগ থেকে কিছু নির্দিষ্ট কারণগুলি পড়তে এবং সনাক্ত করতে পারেন :

এনএসএলআউটআউট কনট্রেন্ট: 0xa338390 ভি: | - (15) - [ইউআইএলবেল: 0xa331260] (নাম: '|': ইউআইএলবেল: 0xa330270)>

এটি আমরা ইউআইএলবেল সীমাবদ্ধতায় সমস্যা হিসাবে পড়তে পারি, এটি 15pt দীর্ঘ দীর্ঘতর উল্লম্ব সীমাবদ্ধতার নেতৃত্ব দিচ্ছে।

এনএসলয়েটকন্ট্রেন্ট: 0x859ab20 এইচ :-( 13) - | [ইউআইভিউ: 0x85a8fb0] ...

এটি অনুভূমিক সীমাবদ্ধতার পিছনে হবে etc.


6

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

সুতরাং, উপরের ব্যতিক্রমগুলি ব্যবহার করে আমি এক্সকোডে "উত্স কোড" (বা অন্য কোনও সম্পাদক) হিসাবে স্টোরিবোর্ডটি খুলব এবং আমি খুঁজে পাবার মতো কিছু সন্ধান করব ...

<NSLayoutConstraint:0x72bf860 V:[UILabel:0x72bf7c0(17)]> 

.. এটি কোনও ইউআইএলবেলের (17) এর মান সহ উল্লম্ব (V) সীমাবদ্ধ বলে মনে হচ্ছে।

ব্যতিক্রমগুলি সন্ধান করে আমি এটিও খুঁজে পাই

<NSLayoutConstraint:0x72c22b0 V:[UILabel:0x72bf7c0]-(NSSpace(8))-[UIButton:0x886efe0]>

যা দেখতে দেখতে ইউআইএলবেল (0x72bf7c0) কিছু উল্লম্ব ব্যবধান (8) সহ একটি ইউআইবাটন (0x886efe0) এর কাছাকাছি রয়েছে ..

স্টোরিবোর্ড উত্স কোডে সম্ভবত সম্ভবত "17" এর জন্য পাঠ্যটি অনুসন্ধান করে) বা কমপক্ষে কয়েকজন সম্ভাব্য প্রার্থী সন্ধান করার জন্য এটি আমার পক্ষে যথেষ্ট হবে। সেখান থেকে আমার আসলে স্টোরিবোর্ডে কোন দৃষ্টিভঙ্গি রয়েছে তা অনুধাবন করতে সক্ষম হওয়া উচিত যা সমস্যাটি সনাক্ত করা খুব সহজ করে তুলবে ("ডুপ্লিকেটযুক্ত" পিনিং বা পিনিংটি দেখুন যা আকারের বাধাগুলির সাথে দ্বন্দ্ব রয়েছে)।


"আমি অর্থবোধক ব্যবহারকারী লেবেলগুলি ব্যবহার করি" - এই প্রসঙ্গে ব্যবহারকারী লেবেলগুলি কী? (কীভাবে আপনি সেগুলি সেট করবেন)
স্ট্রিপস

পরিচয় পরিদর্শকের দস্তাবেজ বিভাগে একটি ক্ষেত্র "লেবেল" .. যা স্টোরি বোর্ড উত্স কোডে একটি "ব্যবহারকারী লেবেল" মান অনুবাদ করে।
সি জেমস

আপনি বাম হাতের "ওভারভিউ" প্যানেলে একটি নির্বাচিত ভিউতে ক্লিক করে এগুলি সেট করতে পারেন (ফাইন্ডারে কোনও ফাইলের নাম পরিবর্তন করার মতো কিছু)
সি জেমস

1
ভয়ঙ্কর সমাধানের ক্ষেত্রে সম্ভবত আমি সবচেয়ে ভাল জিনিসটি পড়েছি "একই সাথে সীমাবদ্ধতাগুলি পূরণ করতে অক্ষম।" ব্যাথা। আমি দেখতে পেয়েছি যে এই মুহূর্তে প্রদর্শিত অবজেক্টটি "এনএসএলআউটকন্ট্রেন্ট << এনএসএলআউটকন্ট্রেন্ট:" ভেঙে পুনরুদ্ধার করার চেষ্টা করবে সাধারণত: এটি অপরাধী এবং সি জেমস যেমন বলেছিলেন সম্ভবত উচ্চতা বা প্রস্থের প্রতিবন্ধকতা যা পিনিং সীমাবদ্ধতার সাথে সাংঘর্ষিক। উচ্চতাটি সরিয়ে ফেলা আমার পক্ষে কঠিন মনে হয়েছে তবে সীমাবদ্ধতাগুলি সঠিক হওয়ায় উচ্চতাটি অন্যান্য সীমাবদ্ধতা থেকে সঙ্কুচিত হতে পারে। একটি উচ্চতার সীমাবদ্ধতা যুক্ত করা কেবল অটো লেআউটকে বিভ্রান্ত করেছে, তাই আমি এখন যা খুঁজছি।
latenitecoder

6

কোন ত্রুটিগুলি এই ত্রুটিটি সৃষ্টি করছে তা নির্ধারণ করতে আমার বেশ কষ্ট হয়েছিল। এটি করার একটি সহজ উপায় এখানে।

আমি এক্সকোড 6.1.1 ব্যবহার করছি

  1. সমস্ত ইউআইএলবেলস, ইউআইআইএমেজ ইত্যাদি নির্বাচন করতে "কমান্ড + এ"
  2. সুপারভিউতে সম্পাদক -> পিন> (নির্বাচন করুন ...) এ ক্লিক করুন
  3. আবার সম্পাদক -> অটো লেআউট সমস্যাগুলি সমাধান করুন -> অনুপস্থিত সীমাবদ্ধতা যুক্ত করুন বা প্রস্তাবিত সীমাবদ্ধতায় পুনরায় সেট করুন ক্লিক করুন। এটি আপনার ক্ষেত্রে নির্ভর করে।

5

আমার এই সমস্যাটি ছিল কারণ আমার .xibফাইলগুলি অটোলেআউট ব্যবহার করছিল।

ফাইল পরিদর্শক, প্রথম ট্যাব। "অটোলেআউট ব্যবহার করুন" ব্যবহার করে সমস্যাটি সমাধান করা।

অটোলেআউট ফাইল ইন্সপেক্টর


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

1
অটলেআউট বস্তুর বিন্যাস পরিচালনা করতে সীমাবদ্ধতা ব্যবহার করে। যেহেতু আপনি কেবল অটোলেআউটটি অক্ষম করেছেন, তাই এই বাঁধাগুলি সম্ভবত মুছে গেছে এবং তাই আপনার অবস্থান UIImageViewপরিবর্তন হয়েছে। আপনাকে অবশ্যই এই অবস্থানটি অবশ্যই প্রোগ্রামের মাধ্যমে বা ইন্টারফেস বিল্ডারের মাধ্যমে সেট করতে হবে set
স্টাফেন ব্রুকার্ট

5

এখানে আমার অভিজ্ঞতা এবং সমাধান। আমি কোড স্পর্শ করি নি

  1. দর্শন নির্বাচন করুন (UILabel, UII छवि ইত্যাদি)
  2. সম্পাদক> পিন> (নির্বাচন করুন ...) সুপারভিউতে
  3. সম্পাদক> অটো লেআউট সমস্যাগুলি সমাধান করুন> হারিয়ে যাওয়া সীমাবদ্ধতা যুক্ত করুন

4

এই কোডটি দ্রুত ব্যবহার করুন

view.translatesAutoresizingMaskIntoConstraints = false

1
এটি একটি উদ্দেশ্য-সি-ট্যাগ প্রশ্নের জন্য একটি দ্রুত উত্তর।
টোবি ন্যারি

2
@ স্মোকডিস্পেন্সার যাইহোক আমি উল্লেখ করেছি যে এটি একটি সুইফ্ট কোড। এবং এটি আমার জন্য কাজ করা হয়। সুইফ্ট / অবজেক্টিভ এটিতে সাধারণ কোকো টাচ এসডিকে থাকে।
অরুণ কুমার পি

2

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

বেসিকটিতে, আমি বলতে চাইছি আপনি কোনও ফর্ম্যাট লিখতে যাবার আগে (এটি একটি সহজ হতে পারে) এটি আপনাকে একটি সতর্কতা দেয়।

ডিফল্ট দর্শন অনুসারে আইওএস 8.0 থেকে আকার শ্রেণীর হয়। এমনকি আপনি আকারের ক্লাসগুলি অক্ষম করলেও এটিতে কিছু অটো লেআউট সীমাবদ্ধতা থাকবে।

সুতরাং আপনি যদি ভিএফএল ব্যবহার করে কোডের মাধ্যমে প্রতিবন্ধকতা নির্ধারণের পরিকল্পনা করছেন। তারপরে আপনাকে অবশ্যই লাইনের নীচে একটি যত্ন নিতে হবে।

// Remove constraints if any.
[self.view removeConstraints:self.view.constraints];

আমি এসওতে অনেক অনুসন্ধান করেছি, তবে সমাধানটি অ্যাপল নমুনা কোডের মধ্যে রয়েছে

সুতরাং আপনাকে নতুন যুক্ত করার পরিকল্পনার আগে অবশ্যই ডিফল্ট প্রতিবন্ধকতাগুলি সরিয়ে ফেলতে হবে।


1

আমার জন্য এই সমস্যার প্রধান কারণ যে আমি আনচেক করতে ভুলে গেছি ছিল AutoLayoutমধ্যে Xibএডিটর। আসলে, আমি কোডটির অনেকগুলি সমন্বয় করেছি XIB



1

পূর্বোক্ত উত্তরগুলির কোনওটিই আমার পরিস্থিতিতে সহায়ক নয়। আমি এক্সকোড 10.1 চালাচ্ছি এবং সিমুলেটারে একটি "আইপ্যাড (5 ম প্রজন্ম)" এর জন্য আমার অ্যাপ্লিকেশনটি পরীক্ষা করছি। সিমুলেটরটি আইওএস 12.1 চলছে।

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

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

তবে সিমুলেটারে, আমি যে মুহূর্তে পাঠ্য ক্ষেত্রগুলির একটিতে ক্লিক করি, সেই মুহুর্তে পর্দার নীচে থেকে কীবোর্ডের বর্ধন উত্থাপিত হয়, যদিও পুরো কীবোর্ডটি কখনও সিমুলেটরটিতে প্রদর্শিত হয় না বলে মনে হয়। তবে নিম্নলিখিতটি টার্মিনালে মুদ্রিত হয়েছে:

Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. 
Try this: 
    (1) look at each constraint and try to figure out which you don't expect; 
    (2) find the code that added the unwanted constraint or constraints and fix it. 
(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
"<NSAutoresizingMaskLayoutConstraint:0x6000034e7700 h=--& v=--& UIKeyboardAssistantBar:0x7f9c7d714af0.height == 0   (active)>",
"<NSLayoutConstraint:0x6000034aba20 V:|-(0)-[_UIUCBKBSelectionBackground:0x7f9c7d51ec70]   (active, names: '|':_UIButtonBarButton:0x7f9c7d51de40 )>",
"<NSLayoutConstraint:0x6000034aba70 _UIUCBKBSelectionBackground:0x7f9c7d51ec70.bottom == _UIButtonBarButton:0x7f9c7d51de40.bottom   (active)>",
"<NSLayoutConstraint:0x6000034fb3e0 V:|-(0)-[_UIButtonBarStackView:0x7f9c7d715880]   (active, names: '|':UIKeyboardAssistantBar:0x7f9c7d714af0 )>",
"<NSLayoutConstraint:0x6000034fb750 V:[_UIButtonBarStackView:0x7f9c7d715880]-(0)-|   (active, names: '|':UIKeyboardAssistantBar:0x7f9c7d714af0 )>",
"<NSLayoutConstraint:0x6000034abc00 'UIButtonBar.maximumAlignmentSize' _UIButtonBarButton:0x7f9c7d51de40.height == UILayoutGuide:0x600002ef4e00'UIViewLayoutMarginsGuide'.height   (active)>",
"<NSLayoutConstraint:0x6000034d7cf0 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x600002ef4e00'UIViewLayoutMarginsGuide']-(9)-|   (active, names: '|':_UIButtonBarStackView:0x7f9c7d715880 )>",
"<NSLayoutConstraint:0x6000034d7c50 'UIView-topMargin-guide-constraint' V:|-(10)-[UILayoutGuide:0x600002ef4e00'UIViewLayoutMarginsGuide']   (active, names: '|':_UIButtonBarStackView:0x7f9c7d715880 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x6000034aba70 _UIUCBKBSelectionBackground:0x7f9c7d51ec70.bottom == _UIButtonBarButton:0x7f9c7d51de40.bottom   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

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

সুতরাং প্রশ্নটি থেকেই যায়, আমি অ্যাপ বিকাশকারী হিসাবে কাজ করার জন্য দায়বদ্ধ এমন কি কিছু আছে (অনুমানের ভিত্তিতে এটি অংশগ্রহন করার মতো জিনিসগুলির একটি গুচ্ছ) বা এটি কেবল অ্যাপলের নিজস্ব সমস্যা / বাগ?

FWIW, নতুন আইপ্যাড মডেল যেমন আইপ্যাড প্রো 12.9-ইঞ্চি (তৃতীয় প্রজন্ম) সিমুলেট করার সময় এই সীমাবদ্ধতা সমস্যা বার্তাটি ঘটে না। তবে কোনও আইপ্যাড প্রো 9.7-ইঞ্চি অনুকরণ করার সময় বার্তাটি প্রদর্শিত হবে "সমস্ত আইটেম দাবি করছে যে তারা iOS 12.1 চালাচ্ছেন।


1

আমি এই একই ত্রুটিটি পাচ্ছি, তবে কেবলমাত্র একটি নির্দিষ্ট দৃশ্যে, যখন আমি প্রথম পাঠ্যক্ষেত্রটি স্পর্শ করি এবং তারপরে পরবর্তী পাঠ্যক্ষেত্রটি নীচে।

আমি আইওএস 13.4 এর জন্য সুইফটুইতে লিখছি

 Unable to simultaneously satisfy constraints.
        Probably at least one of the constraints in the following list is one you don't want. 
        Try this: 
            (1) look at each constraint and try to figure out which you don't expect; 
            (2) find the code that added the unwanted constraint or constraints and fix it. 
    (
        "<NSLayoutConstraint:0x2809b6760 'assistantHeight' TUISystemInputAssistantView:0x105710da0.height == 44   (active)>",
        "<NSLayoutConstraint:0x2809ccff0 'assistantView.bottom' TUISystemInputAssistantView:0x105710da0.bottom == _UIKBCompatInputView:0x10525ae10.top   (active)>",
        "<NSLayoutConstraint:0x2809cccd0 'assistantView.top' V:|-(0)-[TUISystemInputAssistantView:0x105710da0]   (active, names: '|':UIInputSetHostView:0x105215010 )>",
        "<NSLayoutConstraint:0x2809ca300 'inputView.top' V:|-(0)-[_UIKBCompatInputView:0x10525ae10]   (active, names: '|':UIInputSetHostView:0x105215010 )>"
    )

    Will attempt to recover by breaking constraint 
    <NSLayoutConstraint:0x2809ccff0 'assistantView.bottom' TUISystemInputAssistantView:0x105710da0.bottom == _UIKBCompatInputView:0x10525ae10.top   (active)>

    Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
    The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

0

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


-1

দেখার জন্য একটি জিনিস (কমপক্ষে এটি আমাকে ছড়িয়ে দিয়েছে) হ'ল আমি ভুল দৃষ্টিকোণ থেকে সীমাবদ্ধতা সরিয়েছিলাম। আমি যে সীমাবদ্ধতাটি সরিয়ে দেওয়ার চেষ্টা করছিলাম সেটি আমার দৃষ্টিভঙ্গির কোনও বাধা নয় so

myView.removeConstraint(theConstraint)

এটি আসলে কিছুই অপসারণ করছে না কারণ আমার কল করার দরকার ছিল

myView.superView.removeConstraint(theConstraint)

যেহেতু সীমাবদ্ধতা আমার দৃষ্টিতে প্রযুক্তিগতভাবে ভাইবোন ছিল।


-4

দ্রুত 4

আমি কেবল এই লাইনটি ভিডলিডে যুক্ত করব এবং আমার সাথে কাজ করব।

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