`

IOS7相关问题记录

 
阅读更多

如果使用nav 则很容易与内容值重叠,因此,需要增加这几行代码。关键是这句

self.edgesForExtendedLayout = UIRectEdgeNone;

表示将IOS边框扩展设置为none

 

- (void)viewDidLoad

{

    [super viewDidLoad];

    if ([CommonUtil systemVersion] >= 7) {

        CGRect frame=self.view.frame;

        if (frame.size.height==[[NSUserDefaults standardUserDefaults] floatForKey:@"windowHeight"])

        {

            frame.size.height-=20;

        }

        self.view.frame=frame;

        self.edgesForExtendedLayout = UIRectEdgeNone;

        self.automaticallyAdjustsScrollViewInsets = YES;

        self.navigationController.navigationBar.translucent = NO;

        self.tabBarController.tabBar.translucent = NO;

    }

}

------------------

通过cell去找indexPath的方法,原来是这样

 

SDGroupCell *cell = (SDGroupCell *)[(UIView *)[sender superview] 

 

NSIndexPath *indexPath = [self.baseTableView indexPathForCell:cell];

但实际上,IOS貌似不支持这样查询,要查的话用以下方式

UIView *view = sender;

    while (![view isKindOfClass:[UITableViewCell class]]) {

        view = [view superview];

}

 

    NSIndexPath *indexPath = [self.baseTableView indexPathForCell:(UITableViewCell *)view];

-----------------

 

http://stackoverflow.com/questions/19355182/sdnestedtable-expand-does-not-work-on-ios-7/19355366#19355366

原来的SDNestedTable的工具类,由于在初次进去的时候无法很好地进行展开cell里的隐藏位置,升到IOS7无法使用,因此要进行修改(红色字):

//The issue is that expanded index paths are stored in NSDictionary, where NSIndexPath is key. In iOS 7 method -(CGFloat)tableView:heightForRowAtIndexPath: receivesUIMutableIndexPath object instead of NSIndexPath object. So value from dictionary can't be retrieved. Here is this method in SDNestedTableViewController.m:

 

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

    //IOS7 的处理是先获取NSIndexPath 的key 因为在字典里找不到,因此要这样做

 

     NSIndexPath *indexPathKey = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section];

   BOOL isExpanded = [[expandedIndexes objectForKey: indexPath] boolValue];

    if(isExpanded)

    {

        //第一次进入时,先看cell的大小是否合适

        if(itemCellButtonFisrtDrop == 0){

            [self getCellButtonHeight:indexPathKey];

            itemCellButtonFisrtDrop ++;

        }

        return [self geTotleCelltHeight] + 1+30+itemCellButtonViewHeight;

    }

    return [self geCelltHeight];

    

-----------------

原来不用加红色这段,都能有导航出来,现在可能要加了

 UINavigationController *nav = [[UINavigationControlleralloc]initWithRootViewController:userBillRequestVC];

    if ([[UIDevicecurrentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)

    {

        [selfpresentModalViewController:nav animated:YES];

 

    }

------------------

uisearchbar 中的层次结构变化了,原来IOS7之前是UISearchBar的subviews是UISearchBarBackground、UISearchBarTextField。而现在IOS7却只有一个uiview,仔细再观察这个uiView,发现苹果将UISearchBarBackground、UISearchBarTextField都封装在一个UIView里,因此,如果要改变其背景图片,可以用以下方法:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {

                

                subviews = [[billSearchBar.subviews objectAtIndex:0] subviews];

                

            }else{

                

                subviews = billSearchBar.subviews;

                

            }

            for (UIView *subview in subviews)

            {  

                if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])

                {  

                    [subview removeFromSuperview];  

                    break;  

                }  

            }

            

            [searchToolBar addSubview:billSearchBar];

            //为UISearchBarTextField设置背景图片

            UIView *segment = [subviews count]>0 ? [subviews objectAtIndex:1]: [subviews objectAtIndex:0];

            

            UIImageView *bgImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"search_bar_text_bg"]];

 

            [segment addSubview:bgImage];

 

分享到:
评论

相关推荐

    ios历史行为记录

    在iOS开发中,历史行为记录通常涉及到用户在应用程序中的交互数据收集、分析和管理。这些数据可以帮助开发者了解用户的使用习惯,优化应用体验,提供个性化服务,以及进行性能监控。在这个场景下,`...

    ios安装包反汇编记录

    ios安装包反汇编记录,可以反汇编ios安装包,自己的反汇编过程记录

    解决iOS7 UIBarButtonItem右移错位问题.

    ### 解决iOS7 UIBarButtonItem右移错位问题 #### 背景介绍 在iOS开发过程中,经常遇到因为系统版本更新而导致界面布局发生变化的问题。尤其是在iOS7发布后,由于其引入了全新的设计语言以及对控件行为的修改,很多...

    iOS7 Programming Pushing the Limits

    ### iOS7 Programming Pushing the Limits #### 精品iOS开发书籍:内容深入与高端进阶 本书《iOS7 Programming Pushing the Limits》是一本专为iOS开发者设计的专业书籍,旨在帮助开发者掌握iOS7下的高级编程技巧...

    ios 搜索历史记录 不规则布局

    前阵子做项目的时候,偶然用到不规则的历史记录列表,之前的处理方式一个是通过固定搜索文字大小,一行固定2个或三个,另一种则是类似百度搜索记录的方式那样,一行一行罗列显示,苦苦思索后从网上找到一个demo,优化...

    从零开始学iOS7开发系列教程-事务管理软件开发实战

    在本教程中,“从零开始学iOS7开发系列教程-事务管理软件开发实战”,我们将深入探索iOS应用开发,特别是针对iOS7系统。这个教程涵盖了从基础到进阶的多个方面,旨在帮助初学者掌握iOS7开发的核心技术,并通过实战...

    解决ios audio无法播放问题

    下面记录一下ios中ajax回调中播放音乐的问题解决过程 解决方案一 –降低音量 在用户点击时间后将audio的音量设置为0,等success后将音量设置为1; volume可以控制audio的音量大小,取值范围为 0~1 audio.v

    ios程序 内存优化记录LOG日志-20130112

    针对“ios程序 内存优化记录LOG日志-20130112”这个主题,我们可以深入探讨如何通过分析日志来识别并解决内存问题。 首先,Instrument是iOS开发中的一个强大的工具,它可以用于检测应用程序的内存使用情况、性能...

    iOS仿淘宝搜索记录,多标签自动分布,自动布局!

    仿淘宝搜索记录,多标签自动分布,自动换行展示!不同于collection的是,collection 每一行item平均分布,每一行的间隔不统一,MoreLabels实现的是每一行靠左展示,每一行的标签间隔统一,自动换行!大家根据自己的...

    iOS7获取UDID、IMEI、SN、ICCID、Mac地址等信息

    在iOS 7及更高版本中,苹果为了用户隐私和安全,逐渐限制了对这些信息的直接访问。然而,对于开发者或者特定场景的需求,获取这些信息可能仍然是必要的,尤其是在越狱设备上。 首先,我们来了解一下`...

    ios-iOS rar解压(不支持arm7s).zip

    在iOS开发中,开发者需要确保他们的应用能够运行在多种处理器架构上,包括armv7、arm64以及arm7s,通常通过使用fat binary(多架构二进制文件)来实现。 RarArchive_YN可能是这个解压工具的名字,它可能是一个第三...

    iOS捕获程序异常崩溃记录、App信息等

    这些数据有助于判断问题是否与特定的iOS版本或硬件有关。 4. **数据上报**: 收集到的信息需要发送到服务器,这通常通过HTTP请求或者集成第三方服务如Firebase Crashlytics、Fabric等实现。在发送数据时,可能需要...

    iOS 事件时间记录与次数统计.zip

    在iOS开发中,事件时间记录与次数统计是十分重要的功能,尤其对于性能优化和用户体验分析。这个开源项目“EventLogger-master”提供了一种系统化的方式来追踪应用内的各种事件,包括用户交互、网络请求、错误发生等...

    swift-JustLog将iOS上的日志记录提升到更高级别

    在iOS开发中,日志记录是一项至关重要的任务,它帮助开发者追踪应用的运行状态,调试错误,以及在生产环境中监控应用程序的行为。`swift-JustLog`是一个强大的日志记录库,旨在将iOS的日志功能提升到一个全新的层次...

    iOS新版微信底部工具栏遮挡问题完美解决

    一、问题描述: 苹果设备(iOS)微信中打开H5页面,从首页跳转到其他页面后...由于考虑到安全性问题,浏览器的历史记录不支持删除和修改等操作,只能通过新增或替换的方式来实现对浏览历史的操作,因此可以有以下方案

    iOS面试资源(阿里 腾讯等)打包

    了解如何使用swift-log库,设置不同级别的日志(如debug、info、error),以及如何在生产环境中适当地记录和分析日志,能够体现你的问题解决能力。此外,面试中可能还会涉及到如何在不同的环境(如开发、测试、生产...

    ios-带历史记录及错误提示的TextField.zip

    1.占位文字上浮 2.输入内容错误时,下方显示提示信息 3....显示历史输入记录列表,方便用户输入 5.线型边框,输入时/错误时改变线条颜色 github链接 https://github.com/yjjwxy2/YJJTextField

    iOS自动化测试工具ios_monkey

    - 虽然`ios_monkey`能够帮助找到很多问题,但无法替代手动测试和结构性的测试用例。 - 随机测试可能导致重复事件或不合理的操作序列,因此在分析结果时需谨慎。 总之,`ios_monkey`是iOS自动化测试中的一个强大...

    iOS 17.1-beta3镜像包

    iOS 17.1-beta3镜像包是一个用于开发者调试和测试的软件更新,它包含了iOS操作系统的最新预览版本。这个镜像包是专为Xcode设计的,允许开发者在真实设备或模拟器上运行并调试他们的应用程序,确保它们与最新的iOS...

    iOS16.1 ,iOS16.2 - 真机调试

    在压缩包中的"16.1"文件可能包含了与iOS 16.1版本相关的调试资源,例如证书、配置文件或者特定版本的SDK,这些都是为了支持开发者在iOS 16.1环境下进行真机调试所必需的。确保正确使用这些资源,能够帮助开发者更...

Global site tag (gtag.js) - Google Analytics