سؤال

لدي نظرة لا يتم تغيير حجمها بشكل صحيح باستخدام Autoresizemask (في iPhone 3.0).

The OiltView داخل OiviewController داخل UIVIVICTONTroller داخل UITABBARCONTROLLER، يتم إنشاء كل منها برمجيا. شريط الحالة مرئي.

رمز UiviewController هو أساسا:

- (void)loadView {
    UIView* rootView = [[UIView alloc] init];
    self.view = rootView;
    [rootView release]; 
}

- (void)viewDidLoad {
    [super viewDidLoad];

    // table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 480-20-49-44)];
    table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)]; table.autoresizingMask = UIViewAutoresizingFlexibleHeight;
    [self.view addSubview:table];
}

عند الإنشاء مثل هذا، فإن JitalView أكبر قليلا من المساحة المتوفرة. إذا لم أكن مخطئا، فهو بالضبط 44 بكسل أكبر، وحجم شريط التنقل.

ومع ذلك، إذا كنت غير ملء الخط المعلق والتعليق على السطر التالي، فإن حجم القيميتين هو الصحيح تماما. أفضل استخدام تلقيه تلقائي بدلا من حساب حجم القيمت يدويا. ما الخطأ الذي افعله؟

شكرا لكم مقدما!

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

المحلول

يبدو أن المشكلة هي أنني لم أقم بتعيين إطار عرض الجذر في LoadView. إذا قمت بتحديد هذا الإطار، ثم حدد إطار الإطار الفرعي فيما يتعلق بهذا الإطار، فسيتم تغيير حجم أقنعة التلقائي بشكل صحيح من التغييرات الفرعية بشكل صحيح وفقا لكيفية تغيير حجم العرض الجذر من خلال الإطار.

علي سبيل المثال:

- (void)loadView {
    UIView* rootView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    self.view = rootView;
    [rootView release]; 
}

- (void)viewDidLoad {
    [super viewDidLoad];

    table = [[UITableView alloc] initWithFrame:self.view.frame]; 
    table.autoresizingMask = UIViewAutoresizingFlexibleHeight;
    [self.view addSubview:table];
}

بفضل كولين جيلاسون الذي أشار لي في الاتجاه الصحيح.

نصائح أخرى

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

لذلك إذا حددت طاولة 320x100 ستبقى هذا الحجم ما لم أغيرها بشكل صريح أو تغييرات إطار العرض الأصل.

اعتمادا على الآراء الأخرى، يمكنك القيام بالحساب بناء على وجهات النظر الأخرى التي يحتفظ بها الوالد أو عن طريق إطار الوالد نفسه.

إنشاء UIViewController Subclass Instand من فئة Subclass القديمة Apiewcontroller.

إدراج مثيل iTeatedView.

في NIB ببساطة سحب وإسقاط Uiview

علاوة على ذلك، ضع WIER كائن القيمت الحالي.

قم بتعيين حجم OitalView عبر Nib أو طريقة تحميل ViewDidID.

حدد المرجع، DataSource والمندوب عبر بنك الاستثمار القومي.

الآن فقط قم ببساطة بنقل فئة UiviewController ويمكن تغيير حجم جدول الجدول كما يحلو لك.

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