দয়া করে আমার সংক্ষিপ্তসারটি দেখুন যেখানে আমি UILabel
খুব অনুরূপ কোনও UILabel
কিছুর জন্য বিভাগ তৈরি করেছি , আমার বিভাগটি সমস্ত সামগ্রী দেখানোর জন্য উচ্চতাটিকে প্রসারিত করতে দেয় : https://gist.github.com/1005520
অথবা এই পোস্টটি দেখুন: https://stackoverflow.com/a/7242981/662605
এটি উচ্চতা প্রসারিত করবে, তবে আপনি অন্য উপায়ে কাজ করতে সহজেই এটিকে ঘিরে ফেলতে পারেন এবং এর মতো কিছু দিয়ে প্রস্থকে প্রসারিত করতে পারেন, যা আমি বিশ্বাস করি আপনি কী করতে চান:
@implementation UILabel (dynamicSizeMeWidth)
- (void)resizeToStretch{
float width = [self expectedWidth];
CGRect newFrame = [self frame];
newFrame.size.width = width;
[self setFrame:newFrame];
}
- (float)expectedWidth{
[self setNumberOfLines:1];
CGSize maximumLabelSize = CGSizeMake(CGRectGetWidth(self.bounds), CGFLOAT_MAX);
CGSize expectedLabelSize = [[self text] sizeWithFont:[self font]
constrainedToSize:maximumLabelSize
lineBreakMode:[self lineBreakMode]];
return expectedLabelSize.width;
}
@end
আপনি আরও সহজভাবে ক্লাস sizeToFit
থেকে উপলব্ধ পদ্ধতিটি ব্যবহার করতে পারেন তবে UIView
নিরাপদ থাকার জন্য লাইনের সংখ্যা 1 সেট করে।
আইওএস 6 আপডেট
আপনি যদি অটোলআউট ব্যবহার করছেন তবে আপনার একটি বিল্ট ইন সলিউশন রয়েছে। 0 টি রেখার সংখ্যা নির্ধারণ করে, ফ্রেমওয়ার্কটি আপনার পাঠ্যের মাপসই করার জন্য আপনার লেবেলটিকে যথাযথভাবে (আরও উচ্চতা যুক্ত করে) আকার দেবে।
আইওএস 8 আপডেট
sizeWithFont:
অবচয় করা হয়েছে তাই sizeWithAttributes:
পরিবর্তে ব্যবহার করুন:
- (float)expectedWidth{
[self setNumberOfLines:1];
CGSize expectedLabelSize = [[self text] sizeWithAttributes:@{NSFontAttributeName:self.font}];
return expectedLabelSize.width;
}