سؤال

هل هناك طريقة جيدة لضبط حجم ملف UITextView ليتوافق مع محتواه؟قل على سبيل المثال لدي UITextView الذي يحتوي على سطر واحد من النص:

"Hello world"

ثم أقوم بإضافة سطر آخر من النص:

"Goodbye world"

هل هناك طريقة جيدة في Cocoa Touch للحصول على rect من شأنها أن تحتوي على كافة الأسطر في عرض النص حتى أتمكن من ضبط العرض الأصلي وفقًا لذلك؟

وكمثال آخر، انظر إلى حقل الملاحظات للأحداث في تطبيق التقويم - لاحظ كيف يمكن للخلية (و UITextView يحتوي على) يتسع ليحتوي على كافة أسطر النص في سلسلة الملاحظات.

هل كانت مفيدة؟

المحلول

يعمل هذا مع كل من iOS 6.1 و iOS 7:

- (void)textViewDidChange:(UITextView *)textView
{
    CGFloat fixedWidth = textView.frame.size.width;
    CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
    CGRect newFrame = textView.frame;
    newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
    textView.frame = newFrame;
}

أو في Swift (يعمل مع Swift 4.1 في iOS 11)

let fixedWidth = textView.frame.size.width
let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
textView.frame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)

إذا كنت تريد دعمًا لنظام التشغيل iOS 6.1، فيجب عليك أيضًا:

textview.scrollEnabled = NO;

نصائح أخرى

لم يعد هذا يعمل على نظام التشغيل iOS 7 أو أعلى

هناك في الواقع طريقة سهلة للغاية لتغيير حجم الملف UITextView إلى الارتفاع الصحيح للمحتوى.ويمكن القيام بذلك باستخدام UITextView contentSize.

CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;

شيء واحد يجب ملاحظته هو أن الصحيح contentSize متاح فقط بعد ال UITextView تمت إضافته إلى العرض باستخدام addSubview.وقبل ذلك يساوي frame.size

لن ينجح هذا إذا كان التخطيط التلقائي قيد التشغيل.مع التخطيط التلقائي، النهج العام هو استخدام sizeThatFits طريقة وتحديث constant القيمة على قيد الارتفاع.

CGSize sizeThatShouldFitTheContent = [_textView sizeThatFits:_textView.frame.size];
heightConstraint.constant = sizeThatShouldFitTheContent.height;

heightConstraint هو قيد تخطيط تقوم بإعداده عادةً عبر IBOutlet عن طريق ربط الخاصية بقيد الارتفاع الذي تم إنشاؤه في لوحة العمل.


فقط للإضافة إلى هذه الإجابة الرائعة، 2014، إذا كنت:

[self.textView sizeToFit];

هناك اختلاف في السلوك مع ايفون 6+ فقط:

enter image description here

مع 6+ فقط (وليس 5s أو 6) فإنه يضيف "سطرًا فارغًا آخر" إلى UITextView.يعمل "حل RL" على إصلاح هذا الأمر بشكل مثالي:

CGRect _f = self.mainPostText.frame;
_f.size.height = self.mainPostText.contentSize.height;
self.mainPostText.frame = _f;

يعمل على إصلاح مشكلة "الخط الإضافي" على 6+.

لجعل التحجيم ديناميكيا UITextView داخل UITableViewCell, ، لقد وجدت أن المجموعة التالية تعمل في Xcode 6 مع iOS 8 SDK:

  • أضف UITextView إلى أ UITableViewCell وتقييده على الجانبين
  • تعيين UITextViewscrollEnabled الملكية ل NO.مع تمكين التمرير، إطار UITextView لا يعتمد على حجم محتواه، ولكن مع تعطيل التمرير، توجد علاقة بين الاثنين.
  • إذا كان الجدول الخاص بك يستخدم ارتفاع الصف الافتراضي الأصلي وهو 44، فسوف يقوم تلقائيًا بحساب ارتفاع الصف، ولكن إذا قمت بتغيير ارتفاع الصف الافتراضي إلى شيء آخر، فقد تحتاج إلى تشغيل الحساب التلقائي لارتفاعات الصف يدويًا في viewDidLoad:

    tableView.estimatedRowHeight = 150;
    tableView.rowHeight = UITableViewAutomaticDimension;
    

للقراءة فقط للتحجيم الديناميكي UITextViewهذا كل شيء.إذا كنت تسمح للمستخدمين بتحرير النص في ملفك UITextView, ، تحتاج أيضًا إلى:

  • تنفيذ textViewDidChange: طريقة UITextViewDelegate البروتوكول، وأخبر tableView لإعادة رسم نفسه في كل مرة يتم فيها تحرير النص:

    - (void)textViewDidChange:(UITextView *)textView;
    {
        [tableView beginUpdates];
        [tableView endUpdates];
    }
    
  • ولا تنسى تعيين UITextView تفويض في مكان ما، سواء في Storyboard أو في tableView:cellForRowAtIndexPath:

سويفت :

textView.sizeToFit()

حل عمل سهل للغاية باستخدام الكود والقصة المصورة على حد سواء.

بواسطة الكود

textView.scrollEnabled = false

بواسطة القصة المصورة

قم بإلغاء تحديد تمكين التمرير

enter image description here

ليست هناك حاجة لفعل أي شيء بخلاف هذا.

في تجربتي (المحدودة)،

- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode

لا يحترم أحرف السطر الجديد، لذلك يمكن أن ينتهي بك الأمر بأحرف أقصر بكثير CGSize مما هو مطلوب في الواقع.

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size

يبدو أنه يحترم الخطوط الجديدة.

بالإضافة إلى ذلك، لا يتم عرض النص فعليًا في الجزء العلوي من الملف UITextView.في الكود الخاص بي، قمت بتعيين الارتفاع الجديد لـ UITextView ليكون أكبر بمقدار 24 بكسل من الارتفاع الذي تم إرجاعه بواسطة sizeOfFont طُرق.

في iOS6، يمكنك التحقق من contentSize خاصية UITextView مباشرة بعد تعيين النص.في iOS7، لن يعمل هذا بعد الآن.إذا كنت تريد استعادة هذا السلوك لنظام التشغيل iOS7، ضع التعليمة البرمجية التالية في فئة فرعية من UITextView.

- (void)setText:(NSString *)text
{
    [super setText:text];

    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
        CGRect rect = [self.textContainer.layoutManager usedRectForTextContainer:self.textContainer];
        UIEdgeInsets inset = self.textContainerInset;
        self.contentSize = UIEdgeInsetsInsetRect(rect, inset).size;
    }
}

سأقوم بنشر الحل الصحيح في أسفل الصفحة في حالة ما إذا كان شخص ما شجاعًا (أو يائسًا بدرجة كافية) للقراءة حتى هذه النقطة.

إليك gitHub repo لأولئك الذين لا يريدون قراءة كل هذا النص: resizableTextView

يعمل هذا مع iOs7 (وأعتقد أنه سيعمل مع iOs8) ومع التخطيط التلقائي.لا تحتاج إلى أرقام سحرية، وتعطيل التخطيط وأشياء من هذا القبيل. حل قصير وأنيق.

أعتقد أن جميع التعليمات البرمجية المتعلقة بالقيود يجب أن تذهب إلى updateConstraints طريقة.لذلك، دعونا نجعل منطقتنا ResizableTextView.

المشكلة الأولى التي نواجهها هنا هي أننا لا نعرف حجم المحتوى الحقيقي من قبل viewDidLoad طريقة.يمكننا أن نسلك طريقًا طويلًا وصعبًا ونحسبه بناءً على حجم الخط وفواصل الأسطر وما إلى ذلك.لكننا بحاجة إلى حل قوي، لذلك سنفعل:

CGSize contentSize = [self sizeThatFits:CGSizeMake(self.frame.size.width, FLT_MAX)];

والآن أصبحنا نعرف حجم المحتوى الحقيقي بغض النظر عن مكان تواجدنا:قبل او بعد viewDidLoad.أضف الآن قيد الارتفاع على textView (عبر لوحة العمل أو الكود، مهما كانت الطريقة).سنقوم بتعديل هذه القيمة باستخدام contentSize.height:

[self.constraints enumerateObjectsUsingBlock:^(NSLayoutConstraint *constraint, NSUInteger idx, BOOL *stop) {
    if (constraint.firstAttribute == NSLayoutAttributeHeight) {
        constraint.constant = contentSize.height;
        *stop = YES;
    }
}];

آخر شيء عليك فعله هو إخبار الطبقة المتفوقة بذلك updateConstraints.

[super updateConstraints];

الآن يبدو صفنا كما يلي:

ResizableTextView.m

- (void) updateConstraints {
    CGSize contentSize = [self sizeThatFits:CGSizeMake(self.frame.size.width, FLT_MAX)];

    [self.constraints enumerateObjectsUsingBlock:^(NSLayoutConstraint *constraint, NSUInteger idx, BOOL *stop) {
        if (constraint.firstAttribute == NSLayoutAttributeHeight) {
            constraint.constant = contentSize.height;
            *stop = YES;
        }
    }];

    [super updateConstraints];
}

جميلة ونظيفة، أليس كذلك؟وليس عليك التعامل مع هذا الرمز في ملف وحدات تحكم!

لكن انتظر! لا يوجد رسوم متحركة!

يمكنك بسهولة تحريك التغييرات التي تريد إجراؤها textView تمتد بسلاسة.هنا مثال:

    [self.view layoutIfNeeded];
    // do your own text change here.
    self.infoTextView.text = [NSString stringWithFormat:@"%@, %@", self.infoTextView.text, self.infoTextView.text];
    [self.infoTextView setNeedsUpdateConstraints];
    [self.infoTextView updateConstraintsIfNeeded];
    [UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionLayoutSubviews animations:^{
        [self.view layoutIfNeeded];
    } completion:nil];

هل جربت [textView sizeThatFits:textView.bounds] ?

يحرر:يقوم sizeThatFits بإرجاع الحجم ولكنه لا يغير حجم المكون فعليًا.لست متأكدًا مما إذا كان هذا ما تريده أم لا [textView sizeToFit] هو أكثر ما كنت تبحث عنه.في كلتا الحالتين، لا أعرف ما إذا كان سيتناسب تمامًا مع المحتوى الذي تريده، ولكن هذا هو أول شيء يجب تجربته.

هناك طريقة أخرى وهي العثور على الحجم الذي ستشغله سلسلة معينة باستخدام ملف NSString طريقة:

-(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size

يؤدي هذا إلى إرجاع حجم المستطيل الذي يناسب السلسلة المحددة بالخط المحدد.قم بتمرير حجم بالعرض المطلوب والحد الأقصى للارتفاع، ومن ثم يمكنك إلقاء نظرة على الارتفاع الذي تم إرجاعه ليناسب النص.هناك إصدار يتيح لك تحديد وضع فاصل الأسطر أيضًا.

يمكنك بعد ذلك استخدام الحجم الذي تم إرجاعه لتغيير حجم طريقة العرض الخاصة بك لتناسب.

إذا لم يكن لديك UITextView سهل الاستخدام (على سبيل المثال، أنت تقوم بتغيير حجم خلايا عرض الجدول)، سيتعين عليك حساب الحجم عن طريق قياس السلسلة، ثم حساب 8 نقاط من المساحة المتروكة على كل جانب من جوانب UITextView.على سبيل المثال، إذا كنت تعرف العرض المطلوب لعرض النص الخاص بك وتريد معرفة الارتفاع المقابل:

NSString * string = ...;
CGFloat textViewWidth = ...;
UIFont * font = ...;

CGSize size = CGSizeMake(textViewWidth - 8 - 8, 100000);
size.height = [string sizeWithFont:font constrainedToSize:size].height + 8 + 8;

هنا، كل 8 يمثل إحدى الحواف الأربعة المبطنة، و100000 يمثل فقط الحد الأقصى الكبير جدًا للحجم.

في الممارسة العملية، قد ترغب في إضافة مبلغ إضافي font.leading إلى الارتفاعيؤدي هذا إلى إضافة سطر فارغ أسفل النص، والذي قد يبدو أفضل إذا كانت هناك عناصر تحكم بصرية ثقيلة مباشرة أسفل عرض النص.

تكفي الأمور التالية:

  1. فقط تذكر أن تحدد تم تمكين التمرير ل لا من اجلك UITextView:

enter image description here

  1. قم بتعيين قيود التخطيط التلقائي بشكل صحيح.

يمكنك حتى استخدام UITableViewAutomaticDimension.

يمكننا أن نفعل ذلك من خلال القيود.

  1. قم بتعيين قيود الارتفاع لـ UITextView.enter image description here

2. قم بإنشاء IBOutlet لقيود الارتفاع هذه.

 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *txtheightconstraints;

3. لا تنس تعيين مندوب لعرض النص الخاص بك.

4.

-(void)textViewDidChange:(UITextView *)textView
{
    CGFloat fixedWidth = textView.frame.size.width;
    CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
    CGRect newFrame = textView.frame;
    newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
    NSLog(@"this is updating height%@",NSStringFromCGSize(newFrame.size));
    [UIView animateWithDuration:0.2 animations:^{
                  _txtheightconstraints.constant=newFrame.size.height;
    }];

}

ثم قم بتحديث القيد الخاص بك مثل هذا :)

مع إجابة مايك ماكماستر، قد ترغب في القيام بشيء مثل:

[myTextView setDelegate: self];

...

- (void)textViewDidChange:(UITextView *)textView {
  if (myTextView == textView) {
     // it changed.  Do resizing here.
  }
}

لقد اكتشفت طريقة لتغيير حجم ارتفاع حقل النص وفقًا للنص الموجود بداخله وأيضًا ترتيب الملصق الموجود أسفله بناءً على ارتفاع حقل النص!هنا هو الرمز.

UITextView *_textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 300, 10)];
NSString *str = @"This is a test text view to check the auto increment of height of a text view. This is only a test. The real data is something different.";
_textView.text = str;

[self.view addSubview:_textView];
CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;

UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(10, 5 + frame.origin.y + frame.size.height, 300, 20)];
lbl.text = @"Hello!";
[self.view addSubview:lbl];

يا رفاق الذين يستخدمون التخطيط التلقائي ولا يعمل sizetofit، لذا يرجى التحقق من قيد العرض مرة واحدة.إذا فاتك قيد العرض، فسيكون الارتفاع دقيقًا.

لا حاجة لاستخدام أي API أخرى.سطر واحد فقط سيصلح كل المشكلة.

[_textView sizeToFit];

هنا، كنت مهتمًا فقط بالارتفاع، مع الحفاظ على العرض ثابتًا وقد فاتني قيد العرض الخاص بـ TextView في لوحة العمل.

وكان هذا لإظهار المحتوى الديناميكي من الخدمات.

نأمل أن يكون هذا قد يساعد ..

بدءًا من نظام التشغيل iOS 8، من الممكن استخدام ميزات التخطيط التلقائي لـ UITableView لتغيير حجم UITextView تلقائيًا بدون أي تعليمات برمجية مخصصة على الإطلاق.لقد وضعت مشروعا جيثب وهذا يوضح ذلك عمليا، ولكن هنا هو المفتاح:

  1. يجب أن يكون التمرير معطلاً في UITextView، وهو ما يمكنك القيام به برمجيًا أو من خلال أداة إنشاء الواجهة.لن يتم تغيير حجمه إذا تم تمكين التمرير لأن التمرير يتيح لك عرض المحتوى الأكبر.
  2. في viewDidLoad لـ UITableViewController، يجب عليك تعيين قيمة لـ المقدرةRowHeight ثم تعيين rowHeight ل UITableViewAutomaticDimension.

- (void)viewDidLoad {
    [super viewDidLoad];
    self.tableView.estimatedRowHeight = self.tableView.rowHeight;
    self.tableView.rowHeight = UITableViewAutomaticDimension;
}
  1. يجب أن يكون هدف نشر المشروع هو نظام التشغيل iOS 8 أو إصدار أحدث.

لقد نجح هذا بشكل جيد عندما كنت بحاجة إلى إنشاء نص في ملف UITextView تناسب منطقة معينة:

// The text must already be added to the subview, or contentviewsize will be wrong.

- (void) reduceFontToFit: (UITextView *)tv {
    UIFont *font = tv.font;
    double pointSize = font.pointSize;

    while (tv.contentSize.height > tv.frame.size.height && pointSize > 7.0) {
        pointSize -= 1.0;
        UIFont *newFont = [UIFont fontWithName:font.fontName size:pointSize];
        tv.font = newFont;
    }
    if (pointSize != font.pointSize)
        NSLog(@"font down to %.1f from %.1f", pointSize, tv.font.pointSize);
}

هنا هو الإصدار السريع منjhibberd

    let cell:MsgTableViewCell! = self.tableView.dequeueReusableCellWithIdentifier("MsgTableViewCell", forIndexPath: indexPath) as? MsgTableViewCell
    cell.msgText.text = self.items[indexPath.row]
    var fixedWidth:CGFloat = cell.msgText.frame.size.width
    var size:CGSize = CGSize(width: fixedWidth,height: CGFloat.max)
    var newSize:CGSize = cell.msgText.sizeThatFits(size)
    var newFrame:CGRect = cell.msgText.frame;
    newFrame.size = CGSizeMake(CGFloat(fmaxf(Float(newSize.width), Float(fixedWidth))), newSize.height);
    cell.msgText.frame = newFrame
    cell.msgText.frame.size = newSize        
    return cell

لقد قمت بمراجعة جميع الإجابات وكلها تحافظ على العرض الثابت وتضبط الارتفاع فقط.إذا كنت ترغب في ضبط العرض أيضًا، فيمكنك بسهولة استخدام هذه الطريقة:

لذا، عند تكوين عرض النص، قم بتعطيل التمرير

textView.isScrollEnabled = false

ثم بطريقة المفوض func textViewDidChange(_ textView: UITextView) أضف هذا الكود:

func textViewDidChange(_ textView: UITextView) {
    let newSize = textView.sizeThatFits(CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude))
    textView.frame = CGRect(origin: textView.frame.origin, size: newSize)
}

النواتج:

enter image description here

enter image description here

تعطيل التمرير

إضافة محتويات

وأضف النص الخاص بك

[yourTextView setText:@"your text"];
[yourTextView layoutIfNeeded];

إذا كنت تستخدم UIScrollView يجب عليك إضافة هذا أيضا؛

[yourScrollView layoutIfNeeded];

-(void)viewDidAppear:(BOOL)animated{
    CGRect contentRect = CGRectZero;

    for (UIView *view in self.yourScrollView.subviews) {
         contentRect = CGRectUnion(contentRect, view.frame);
    }
    self.yourScrollView.contentSize = contentRect.size;
}

بالنسبة لنظام التشغيل iOS 7.0، بدلاً من تعيين frame.size.height إلى contentSize.height (الذي لا يفعل شيئًا حاليًا) يستخدم [textView sizeToFit].

يرى هذا السؤال.

أتمنى أن يساعدك هذا:

- (void)textViewDidChange:(UITextView *)textView {
  CGSize textSize = textview.contentSize;
  if (textSize != textView.frame.size)
      textView.frame.size = textSize;
}

إذا وصل أي حل آخر إلى هنا، فإن هذا الحل يناسبني، 1"Ronnie Liew"+4"user63934" (يصل النص الخاص بي من خدمة الويب):لاحظ الرقم 1000 (لا شيء يمكن أن يكون كبيرًا جدًا "في حالتي")

UIFont *fontNormal = [UIFont fontWithName:FONTNAME size:FONTSIZE];

NSString *dealDescription = [client objectForKey:@"description"];

//4
CGSize textSize = [dealDescription sizeWithFont:fontNormal constrainedToSize:CGSizeMake(containerUIView.frame.size.width, 1000)];

CGRect dealDescRect = CGRectMake(10, 300, containerUIView.frame.size.width, textSize.height);

UITextView *dealDesc = [[[UITextView alloc] initWithFrame:dealDescRect] autorelease];

dealDesc.text = dealDescription;
//add the subview to the container
[containerUIView addSubview:dealDesc];

//1) after adding the view
CGRect frame = dealDesc.frame;
frame.size.height = dealDesc.contentSize.height;
dealDesc.frame = frame;

وهذا...هتافات

أفضل طريقة اكتشفتها لإعادة حجم ارتفاع UITextView وفقًا لحجم النص.

CGSize textViewSize = [YOURTEXTVIEW.text sizeWithFont:[UIFont fontWithName:@"SAMPLE_FONT" size:14.0]
                       constrainedToSize:CGSizeMake(YOURTEXTVIEW.frame.size.width, FLT_MAX)];

أو يمكنك استخدامها

CGSize textViewSize = [YOURTEXTVIEW.text sizeWithFont:[UIFont fontWithName:@"SAMPLE_FONT" size:14.0]
                       constrainedToSize:CGSizeMake(YOURTEXTVIEW.frame.size.width, FLT_MAX) lineBreakMode:NSLineBreakByTruncatingTail];

بالنسبة لأولئك الذين يريدون أن يتحرك عرض النص فعليًا للأعلى ويحافظ على موضع النتيجة النهائية

CGRect frame = textView.frame;
frame.size.height = textView.contentSize.height;

if(frame.size.height > textView.frame.size.height){
    CGFloat diff = frame.size.height - textView.frame.size.height;
    textView.frame = CGRectMake(0, textView.frame.origin.y - diff, textView.frame.size.width, frame.size.height);
}
else if(frame.size.height < textView.frame.size.height){
    CGFloat diff = textView.frame.size.height - frame.size.height;
    textView.frame = CGRectMake(0, textView.frame.origin.y + diff, textView.frame.size.width, frame.size.height);
}

الكود الوحيد الذي سيعمل هو الذي يستخدم "SizeToFit" كما في إجابة jhibberd أعلاه ولكنه في الواقع لن يتم التقاطه إلا إذا اتصلت به ViewDidAppear أو قم بتوصيله إلى حدث تغيير النص UITextView.

بناءً على إجابة نيكيتا توك، توصلت إلى الحل التالي في Swift والذي يعمل على نظام التشغيل iOS 8 مع التخطيط التلقائي:

    descriptionTxt.scrollEnabled = false
    descriptionTxt.text = yourText

    var contentSize = descriptionTxt.sizeThatFits(CGSizeMake(descriptionTxt.frame.size.width, CGFloat.max))
    for c in descriptionTxt.constraints() {
        if c.isKindOfClass(NSLayoutConstraint) {
            var constraint = c as! NSLayoutConstraint
            if constraint.firstAttribute == NSLayoutAttribute.Height {
                constraint.constant = contentSize.height
                break
            }
        }
    }

إجابة سريعة:التعليمة البرمجية التالية تحسب ارتفاع textView الخاص بك.

                let maximumLabelSize = CGSize(width: Double(textView.frame.size.width-100.0), height: DBL_MAX)
                let options = NSStringDrawingOptions.TruncatesLastVisibleLine | NSStringDrawingOptions.UsesLineFragmentOrigin
                let attribute = [NSFontAttributeName: textView.font!]
                let str = NSString(string: message)
                let labelBounds = str.boundingRectWithSize(maximumLabelSize,
                    options: NSStringDrawingOptions.UsesLineFragmentOrigin,
                    attributes: attribute,
                    context: nil)
                let myTextHeight = CGFloat(ceilf(Float(labelBounds.height)))

يمكنك الآن ضبط ارتفاع عرض النص الخاص بك على myTextHeight

هنا هو الجواب إذا كنت بحاجة إلى تغيير الحجم textView و tableViewCell ديناميكيا في staticTableView

[https://stackoverflow.com/a/43137182/5360675][1]

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top