私のアプリケーションでは、テーブルビューの先頭に検索バーを追加する必要があります。検索バーを追加することはできますが、ios のデフォルトの検索バーを追加しないと、カスタマイズした検索バーを追加できますか?? そこにある検索バーの種類を確認するための画像を提供しています...
10725 次
5 に答える
9
メソッドをサブクラス化し、メソッドUISearchBar
をオーバーライドできます。layoutSubviews
- (void)layoutSubviews {
UITextField *searchField;
NSUInteger numViews = [self.subviews count];
for(int i = 0; i < numViews; i++) {
if([[self.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) { //conform?
searchField = [self.subviews objectAtIndex:i];
}
}
if(!(searchField == nil)) {
searchField.textColor = [UIColor whiteColor];
[searchField setBackground: [UIImage imageNamed:@"yourImage.png"] ];
[searchField setBorderStyle:UITextBorderStyleNone];
}
[super layoutSubviews];
}
また、次のことができます。
//to clear searchbar backgraound
- (void) clearSearchBarBg
{
for (UIView *subview in theSearchBar.subviews)
{
if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
{
[subview removeFromSuperview];
break;
}
}
}
//display showSearchButtonInitially in a keyboard
- (void)showSearchButtonInitially
{
UIView * subview;
NSArray * subviews = [theSearchBar subviews];
for(subview in subviews)
{
if( [subview isKindOfClass:[UITextField class]] )
{
NSLog(@"setEnablesReturnKeyAutomatically");
[((UITextField*)subview) setEnablesReturnKeyAutomatically:NO];
((UITextField*)subview).delegate=self;
[((UITextField*)subview) setEnabled:TRUE];
((UITextField*)subview).borderStyle = UITextBorderStyleNone;
break;
}
}
}
于 2011-12-28T11:08:02.737 に答える
3
UISearchBarのApple DOC を探します
必要なものを取得するためのメソッドがたくさんあります
検索バー内で UITextView を取得できます
UITextField *textField = [searchBar.subviews objectAtIndex:2];
if ([textField isKindOfClass:[UITextField class]]) {
//Do your customization
}
再び UITextField のAppleDocを探します。そのためのメソッドもたくさんあります。
于 2013-01-09T09:27:27.203 に答える
0
[[searchBarDesign.subviews objectAtIndex:0] removeFromSuperview];
ここで searchBarDesign は私の searchBar 名です。
于 2012-11-20T07:06:58.473 に答える
0
ええ、間違いなく。カスタム検索バー (のサブクラスUIView
) を作成し、サブビューとして に追加できtableHeaderView
ます。
于 2011-12-28T11:08:03.073 に答える
0
ロード時に UISearchBar のすべてのプロパティを設定するだけの方がよいと思います。
@interface MySearchBar : UISearchBar
@end
@implementation MySearchBar
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self myInitialize];
}
return self;
}
-(void)awakeFromNib
{
[super awakeFromNib];
[self myInitialize];
}
-(void)myInitialize
{
self.backgroundImage = [UIImage imageNamed:@"image.png"];
for (UIView* subview in self.subviews) {
if ([subview isKindOfClass:[UITextField class]]) {
//customize text field
UITextField* textfield = (UITextField*) subview;
}
}
}
@end
于 2013-08-24T01:37:41.877 に答える