لماذا توجد فجوات يسارية/اليمنى عندما أضيف صورة إلى شريط التنقل الخاص بي؟

StackOverflow https://stackoverflow.com/questions/2326995

سؤال

UIImageView *navBarImageView = [[UIImageView alloc] initWithImage:navBarImage];
[navBarImageView setFrame:CGRectMake(0, 0, 320, 44)];
self.navigationItem.titleView = navBarImageView;
[navBarImageView release];

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

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

المحلول

هذا ... ربما ليس كيف تريد أن تفعل ذلك - ليس هذا ما titleView هو ل. الطريقة المعتادة للقيام بخلفية شريط التنقل المخصص هي إنشاء فئة على UINavigationBar, ، مثل ذلك:

 @implementation UINavigationBar(MyCustomBackground)
 - (void)drawRect:(CGRect)r
 {
      [[UIImage imageNamed:@"my-navigation-background.png"] drawInRect:self.bounds];
 }
 @end

قم برمي ذلك في ملف .m في مشروعك وستشاهد جميع قضبان التنقل الخاصة بك تستخدم "My Navigation-Background.png" كخلفية.

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