سؤال

عندما أحاول الحصول على حدود الشاشة الرئيسية [[UIScreen mainScreen] bounds], ، يعود فارغة. لقد حاولت مع [[UIScreen applicationFrame] bounds] كذلك ، لا يزال يعود لاغية.

الجزء الغريب هو ؛ إذا فعلت NSLog(@"%@", [UIScreen mainScreen]); إنه يطبع الحدود الصحيحة ، وإن لم يكن لدي أي فكرة عن كيفية تحليلها ، إذا كان ذلك ممكنًا.

إليك الرمز ذي الصلة:

-(void)loadView {
    [super loadView];
    CGRect pagingFrame = [[UIScreen mainScreen] bounds]; 
    NSLog(@"%@", [[UIScreen mainScreen] bounds]); //prints null for me
    NSLog(@"Width of original frame = %d", pagingFrame.size.width); //prints out 0
    pagingFrame.origin.x -= pagingXOrigin;
    pagingFrame.size.width += pagingWidthAdd;
    NSLog(@"Width of adjusted frame = %d", pagingFrame.size.width); //still prints out 0
    pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingFrame];
    pagingScrollView.pagingEnabled = YES;
    pagingScrollView.backgroundColor = [UIColor blackColor];
    pagingScrollView.contentSize = CGSizeMake(pagingFrame.size.width * [self imageCount], pagingFrame.size.height);
    self.view = pagingScrollView;
    //Initialize sets
    recycled = [[NSMutableSet alloc] init];
    visible = [[NSMutableSet alloc] init];
    [self tilePages];
}

pagingScrollView تم إعلانه في ملف الرأس ، كما هو معاد تدويره ومرئي.

أنا أستخدم Xcode 3 و iOS SDK 4.1.

أنا متأكد من أن هناك حلًا بسيطًا جدًا لهذا الغرض ، ومع ذلك ما زلت صاعدًا في Objective-C ، وبالتالي لا يمكنني حله.

شكرًا

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

المحلول

bounds هو struct, ، وليس كائن. لا يمكنك إخراجها باستخدام %@ تنسيق محدد. وبالمثل ، فإن أعضاء الهيكل هم عوامات ، وليس الأعداد الصحيحة. إذا قمت بإخراجها مع %d, ، أنت ملزم بالحصول على نتائج خاطئة.

نصائح أخرى

ال NSStringFromCGRect الطريقة تجعل من الأسهل بكثير تسجيل CGRECT بسرعة. نرى وثائق Apple لمزيد من المعلومات ، ولكن إليك مقتطف رمز:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
NSLog(@"%@", NSStringFromCGRect(screenBounds));

لشرح المزيد من التنسيقات "٪@" nsobjects عن طريق الاتصال [الوصف OBJ] على الكائن واستخدام السلسلة التي تم إرجاعها من ذلك. لذلك قبل أن تحاول تنسيق سلسلة مع ٪@ تأكد من أنك تتعامل فعليًا مع NSObject وليس نوعًا آخر.

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