2

私はこれが重複しているようなコメントがあることを理解しています:

TableViewのUISearchBarsの幅を変更します

そうではないと思います。ストーリーボードの幅を変更できないのはなぜですか?

ここに画像の説明を入力してください

幅フィールドに任意の値を書き込むことができますが、リターン/エンターキーを押すとすぐに値320が復元されます。

ロードメソッドを表示してそれを実行しようとしました:

searchBar.frame = CGRectMake(0, 0, 222, 45);

再びゼロの成功で、誰かがこれを行う方法を知っていますか?インデックス付きのテーブルがあり、右側の文字が検索テキストフィールドと重なっていて、本当に見苦しいです。

アップデート

簡単に言えば、ここに私が欲しいものがあります(概念的に):

ここに画像の説明を入力してください

これは私が何とか作成したものです:

ここに画像の説明を入力してください

もう一度、「文字が重ならないように検索バーのサイズを変更しようとしています」という問題を繰り返します。

taus-iDeveloperの提案を試しましたが、サイズは変更されましたが、テーブルのセル/セクションが重なっています。

またこれを試しました:

UISearchBar TextFieldのサイズを変更しますか?

ストーリーボードでサイズを変更できましたが、アプリケーションの実行中にサイズが変更されていません。

ここに画像の説明を入力してください

私はすべて、次に何を試すべきかについての考えがありません。

アップデート2

解決策の要素がいくつかあるので、答えを受け入れました。これは、ストーリーボードをプログラムでのみ使用して行うことはできないという結論に達しました。解決策

//Add the search bar uiview wrapper
    UIView *searchBarView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.tableView.frame.size.width, 44.0)];

    //Add the search bar and navigation item to fill in the remaining space
    UINavigationBar *remainingSearchSpace = [[UINavigationBar alloc] initWithFrame:CGRectMake(290, 0.0, (self.tableView.frame.size.width-290), 44.0)];

    searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 290, 44.0)];
    searchBar.delegate = self;
    [searchBarView addSubview:searchBar];
    [searchBarView addSubview:remainingSearchSpace];
    self.tableView.tableHeaderView = searchBarView;
4

3 に答える 3

1

これを試してみてください:.hファイルで、

@interface SearchBarController : UIViewController <UISearchBarDelegate>

@property (nonatomic, retain) UISearchBar *mySearchBar;

.mファイルでは、

@synthesize mySearchBar;
- (void)viewDidLoad
{
    [super viewDidLoad];

    self.title = NSLocalizedString(@"SearchBarTitle", @"");

    self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];    // use the table view background color

    self.mySearchBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, 44.0)] autorelease];
    self.mySearchBar.delegate = self;
    self.mySearchBar.showsCancelButton = YES;
    self.mySearchBar.showsBookmarkButton = YES;
    [self.view addSubview: self.mySearchBar];

    // provide tint coloring and background image only if its available
    if (![self.mySearchBar respondsToSelector:@selector(setSearchFieldBackgroundImage:forState:)])
    {
        // hide the segmented control allowing for various content options
        self.contentOptions.hidden = YES;
    }
}

お役に立てれば!!

于 2012-06-06T14:45:12.170 に答える
1

次のUISearchDisplayDeletegate関数を使用します。

- (void) searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller
- (void) searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller
于 2012-09-16T11:16:50.247 に答える
0

デフォルトで検索キャンセルボタンが表示される場所を表示するのではなく、検索バーのすぐ下にインデックスを表示できます。

于 2014-04-04T16:06:18.963 に答える