NavigationController Панель навигации Панель заголовка не работает на панели навигации Большой заголовок в iOS Objective-C - PullRequest
0 голосов
/ 01 января 2019

Я застрял в режиме просмотра заголовка Когда я использовал Navigationitem.title, он показывает мне большой заголовок, но вид заголовка не показывает, пожалуйста, ребята, помогите мне в этом Спасибо enter image description here

:- searchBar Configure Code :-
      self.searchControllerInvoice = [[UISearchController alloc] initWithSearchResultsController:nil];
         self.searchControllerInvoice.searchResultsUpdater = self;
         self.searchControllerInvoice.delegate = self;

:- Navigation And TitleBUtton :-
                CGFloat maxTitleWidth = self.navigationController.navigationBar.frame.size.width;
            CGSize requestedTitleSize = [selectedName sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:17]}];
            CGFloat titleWidth = MIN(maxTitleWidth-130, requestedTitleSize.width);

            if(!TitleButton)
            {
                TitleButton = [UIButton buttonWithType:UIButtonTypeSystem];
                [TitleButton setFrame:CGRectMake(0, 0, titleWidth , 22)];
            }

            [TitleButton.titleLabel setFont:[UIFont systemFontOfSize:17]];

            TitleButton.titleLabel.adjustsFontSizeToFitWidth = YES;
            TitleButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
            [TitleButton setTitle:selectedName forState:UIControlStateNormal];
            [TitleButton setImage:image forState:UIControlStateNormal];
            [TitleButton addTarget:self action:@selector(titleButtonClicked:) forControlEvents:UIControlEventTouchUpInside];

            TitleButton.semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
            TitleButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

             if (@available(iOS 11.0, *)) {
                  self.navigationItem.searchController = self.searchControllerInvoice;
        //          [self.navigationItem.searchController.searchBar setBackgroundColor:UIColor.redColor];
             } else {
                  self.getInvoiceTable.tableHeaderView = self.searchControllerInvoice.searchBar;
             }

             self.navigationItem.titleView=TitleButton;

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Большой заголовок iOS не работает с настраиваемыми представлениями заголовков, как вам нужно.

Если для навигационного элемента установлены свойства заголовка и заголовка, а для навигационного бара preferencesLargeTitles установлено значение ДА, вы получите большой заголовок.отображается во второй строке, в то время как предоставленный titleView отображается как обычно в верхней центральной части панели навигации.

Короче говоря: это невозможно.

0 голосов
/ 01 января 2019

Прежде всего вы используете кнопку в большом заголовке, об этом я понятия не имею.

Но, когда вы используете заголовок по умолчанию для большого заголовка, вам нужно включить следующие свойства в методе AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [[UINavigationBar appearance] setPrefersLargeTitles:true];

    return YES;
}

Вывод:

Large Title

Это позволит использовать большой заголовок для всех вас на панели навигации по умолчанию.

Надеюсь, это поможет вам.

...