由UISearchBar引起的lldb调试-创新互联

iOS6,7中UISearchBar内部的view布局已经完全不一样。如图:

创新互联是专业的柯坪网站建设公司,柯坪接单;提供做网站、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行柯坪网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

由UISearchBar引起的lldb调试

由UISearchBar引起的lldb调试

上面是iOS6的,下面是iOS7的,对应的去除UISearchBar的背景色和添加其中的UITextField的代码也不一样。如下:

//搜索框
UISearchBar *sBar = [[UISearchBar alloc] initWithFrame:CGRectMake(83, 6, 230, 31)];
sBar.placeholder = @"请选择类型后输入关键字";
sBar.delegate = self;
sBar.barStyle = UIBarStyleDefault;
if ([sBar respondsToSelector:@selector(barTintColor)]) {
    [sBar setBarTintColor:[UIColor clearColor]];
    UIView *searchview = [sBar.subviews objectAtIndex:0];
    for (UIView *view in searchview.subviews){
        if ([view isKindOfClass: [UITextField class]]) {
            UITextField *tf = (UITextField *)view;
            tf.clearButtonMode = UITextFieldViewModeWhileEditing;
            tf.borderStyle = UITextBorderStyleNone;
            tf.background = [[UIImage p_w_picpathNamed:@"bg_searchbox.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:0];
            tf.leftView = nil;
            break;
        }
    }
                                                                                                                                                                  
    [_typeBtn setImageEdgeInsets:UIEdgeInsetsMake(0, 2, 0, -65)];
}
else{
    [[sBar.subviews objectAtIndex:0] removeFromSuperview];
    [sBar setBackgroundColor:[UIColor clearColor]];
                                                                                                                                                                  
    for (UIView *view in sBar.subviews){
        if ([view isKindOfClass: [UITextField class]]) {
            UITextField *tf = (UITextField *)view;
            tf.clearButtonMode = UITextFieldViewModeWhileEditing;
            tf.borderStyle = UITextBorderStyleNone;
            tf.background = [[UIImage p_w_picpathNamed:@"bg_searchbox.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:0];
            tf.leftView = nil;
            break;
        }
    }
}
_searchBar = [sBar retain];
[self.view addSubview:sBar];
[sBar release];

事情到这里,公司的任务就算结束了。这个要多问一句了。图片中的数据哪里来的?这才是重点。

   玩过Linux c/c++的人都知道gdb,虽然你可能完全没有用过,好吧,我承认,我也没正经用过,只是偶尔看到而已。iOS以前也是用gcc/gdb的,后来改用了llvm/lldb,但是大同小异了。只是这么大的程序的到底怎么玩调试,我还不知道,哪里去输入,我查了半天才找到,其实挺简单,只要你断点打上,在输出log的那个区域可以直接输入的。

   网上一哥们写的 Xcode LLDB Debug教程,我抄在这里:

开胃小菜--简单的断点调试

在xcode中打开一个app,在想要break的行号上单击,即可生成一个深色的箭头标识--断点。如下图,在viewDidLoad:中设置了断点。由UISearchBar引起的lldb调试

运行app,等待。。。就可以看到xcode在断点处进入调试模式,现在让我们把视线移到xcode右下角的控制台,有木有看到(lldb)这样一行,鼠标移到此行,输入

1
po [self view]

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:由UISearchBar引起的lldb调试-创新互联
网站地址:http://scyanting.com/article/cdpohj.html