আমি একটি কাস্টম ইউআইটিএবলভিউসেল ব্যবহার করছি যাতে কিছু লেবেল, বোতাম এবং চিত্র প্রদর্শন করা যায়। সেলে একটি লেবেল রয়েছে যার পাঠ্যটি একটি NSString
অবজেক্ট এবং স্ট্রিংয়ের দৈর্ঘ্য পরিবর্তনশীল হতে পারে। এই কারণে, আমি UITableView
এর heightForCellAtIndex
পদ্ধতিতে ঘরে কোনও স্থির উচ্চতা সেট করতে পারি না । ঘরের উচ্চতা লেবেলের উচ্চতার উপর নির্ভর করে যা NSString
এর sizeWithFont
পদ্ধতি ব্যবহার করে নির্ধারণ করা যেতে পারে । আমি এটি ব্যবহার করার চেষ্টা করেছি, তবে দেখে মনে হচ্ছে আমি কোথাও ভুল হয়ে যাচ্ছি। কীভাবে এটি স্থির করা যায়?
সেলটি আরম্ভ করার জন্য ব্যবহৃত কোডটি এখানে।
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier])
{
self.selectionStyle = UITableViewCellSelectionStyleNone;
UIImage *image = [UIImage imageNamed:@"dot.png"];
imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(45.0,10.0,10,10);
headingTxt = [[UILabel alloc] initWithFrame: CGRectMake(60.0,0.0,150.0,post_hdg_ht)];
[headingTxt setContentMode: UIViewContentModeCenter];
headingTxt.text = postData.user_f_name;
headingTxt.font = [UIFont boldSystemFontOfSize:13];
headingTxt.textAlignment = UITextAlignmentLeft;
headingTxt.textColor = [UIColor blackColor];
dateTxt = [[UILabel alloc] initWithFrame:CGRectMake(55.0,23.0,150.0,post_date_ht)];
dateTxt.text = postData.created_dtm;
dateTxt.font = [UIFont italicSystemFontOfSize:11];
dateTxt.textAlignment = UITextAlignmentLeft;
dateTxt.textColor = [UIColor grayColor];
NSString * text1 = postData.post_body;
NSLog(@"text length = %d",[text1 length]);
CGRect bounds = [UIScreen mainScreen].bounds;
CGFloat tableViewWidth;
CGFloat width = 0;
tableViewWidth = bounds.size.width/2;
width = tableViewWidth - 40; //fudge factor
//CGSize textSize = {width, 20000.0f}; //width and height of text area
CGSize textSize = {245.0, 20000.0f}; //width and height of text area
CGSize size1 = [text1 sizeWithFont:[UIFont systemFontOfSize:11.0f]
constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];
CGFloat ht = MAX(size1.height, 28);
textView = [[UILabel alloc] initWithFrame:CGRectMake(55.0,42.0,245.0,ht)];
textView.text = postData.post_body;
textView.font = [UIFont systemFontOfSize:11];
textView.textAlignment = UITextAlignmentLeft;
textView.textColor = [UIColor blackColor];
textView.lineBreakMode = UILineBreakModeWordWrap;
textView.numberOfLines = 3;
textView.autoresizesSubviews = YES;
[self.contentView addSubview:imageView];
[self.contentView addSubview:textView];
[self.contentView addSubview:webView];
[self.contentView addSubview:dateTxt];
[self.contentView addSubview:headingTxt];
[self.contentView sizeToFit];
[imageView release];
[textView release];
[webView release];
[dateTxt release];
[headingTxt release];
}
এটি এমন লেবেল যার উচ্চতা এবং প্রস্থটি ভুল হয়ে যাচ্ছে:
textView = [[UILabel alloc] initWithFrame:CGRectMake(55.0,42.0,245.0,ht)];