2017-02-15 4 views
0
override func viewWillLayoutSubviews() { 
    super.viewWillLayoutSubviews() 

    self.tabBar .invalidateIntrinsicContentSize() 
    let tabSize: CGFloat = 80 

    var tabFrame: CGRect = self.tabBar.frame; 
    tabFrame.size.height = tabSize; 
    tabFrame.origin.y = self.view.frame.size.height - tabSize; 
    self.tabBar.frame = tabFrame; 

    self.tabBar.translucent = false; 
    self.tabBar.translucent = true; 

} 

Этот код работает отлично, это iPhone5, но на более высоком экране он оставляет пустое пространство. Является ли это каким-либо образом, я могу настроить выбранный размер вкладки, чтобы сделать его широким или любым другим решением. Спасибо! enter image description hereIOS Swift - пользовательская панель UITabBar оставляет пустое место на старте и в конце строки

+0

тогда вам, вероятно, придется писать этот код с разным значением для другого устройства. –

+0

@HimanshuMoradiya Есть ли у вас симка? – Chetan

+0

У меня нет примера, но у меня есть код, в котором вы можете найти, какое устройство запускает ваше приложение. поэтому вы можете увеличить размер вашей панели вкладок. –

ответ

0
if self.view.frame.size.width > 376 { 
      // here code for iphone 6 and 7 plus 
} 
else if self.view.frame.size.width > 320 && self.view.frame.size.width <= 375 { 
    // write code for iphone 6 and 6s and 7 
} 
else{ 
     if self.view.frame.size.height <= 232 { 
      //write code for iphone 4s 
     } 
     else { 
      //write code for iphone 5 and 5s 

     } 
} 

Другие варианты:

let tabSize: CGFloat = self.view.frame.size.width/4 
0

Вы можете установить TabSize так:

let tabSize: CGFloat = self.view.frame.size.width/4 
0

Если вы используете autolayout и ваша панель вкладок используется завершающую и ведущий ограничения на представление контейнера, попробуйте установить их как равную ширину и в центре по горизонтали.

Смежные вопросы