兼容sdk7&iOS7的issue解决小片段总结
ios7新增加的icon尺寸:
76 x 76:Size for iPad 2 and iPad mini (standard resolution)
120 x 120 :Size for iPhone and iPod touch (high resolution)
152 x 152: Size for iPad and iPad mini (high resolution)
参考:
http://blog.manbolo.com/2013/08/15/new-metrics-for-ios-7-app-icons
https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/IconMatrix.html
Launch image
原来做ios5,6的启动画面时,如果有status bar,我们会考虑做一张高度少20point的图片,现在ios7的status bar透明了,所以Launch image需要做成全屏尺寸。
在xcode5中同时预览ios7和ios7以前的ui样式:
1、打开需要预览的xib;
2、打开assistant editor;
3、点击Manual选择Pre view
判断ios7:
- #define NLSystemVersionGreaterOrEqualThan(version) ([[[UIDevice currentDevice] systemVersion] floatValue] >= version)
- #define IOS7_OR_LATER NLSystemVersionGreaterOrEqualThan(7.0)
- #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
- if (IOS7_OR_LATER) {
- //适配7的代码,这里是在sdk7,ios7中代码
- }
- #endif
- //xcode4.6 支持run ios7
#define NLSystemVersionGreaterOrEqualThan(version) ([[[UIDevice currentDevice] systemVersion] floatValue] >= version)
#define IOS7_OR_LATER NLSystemVersionGreaterOrEqualThan(7.0) #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
if (IOS7_OR_LATER) {
//适配7的代码,这里是在sdk7,ios7中代码
}
#endif
//xcode4.6 支持run ios7
ps:一个不错的宏:
- #ifndef kCFCoreFoundationVersionNumber_iOS_6_1
- #define kCFCoreFoundationVersionNumber_iOS_6_1 793.00
- #endif
- #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
- #define IF_IOS7_OR_GREATER(...) \
- if (kCFCoreFoundationVersionNumber > kCFCoreFoundationVersionNumber_iOS_6_1) \
- { \
- __VA_ARGS__ \
- }
- #else
- #define IF_IOS7_OR_GREATER(...)
- #endif
#ifndef kCFCoreFoundationVersionNumber_iOS_6_1
#define kCFCoreFoundationVersionNumber_iOS_6_1 793.00
#endif #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
#define IF_IOS7_OR_GREATER(...) \
if (kCFCoreFoundationVersionNumber > kCFCoreFoundationVersionNumber_iOS_6_1) \
{ \
__VA_ARGS__ \
}
#else
#define IF_IOS7_OR_GREATER(...)
#endif
判断SDK7:
- //前提至少运行在xcode4.6有sdk6.1
- #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
- //..........
- #endif
//前提至少运行在xcode4.6有sdk6.1
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
//..........
#endif
判断运行时方法:
- (BOOL)respondsToSelector:(SEL)aSelector;
例如:
- if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)])
- {
- self.edgesForExtendedLayout = UIRectEdgeNone;
- }
if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)])
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
ios7中UITableView的cell separator默认不是从最左边开始
下面兼容低于ios7的版本:
- #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
- if (IOS7_OR_LATER) {
- [tabelView setSeparatorInset:UIEdgeInsetsZero];//
- }
- #endif
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
if (IOS7_OR_LATER) {
[tabelView setSeparatorInset:UIEdgeInsetsZero];//
}
#endif
我这是自定义的xib的cell:本来是透明的uitableview背景,到ios7变成白色(因为背景是白色):
- 增加:
- cell.backgroundColor = [UIColor clearColor];//我是由于这层挡住了,大家注意下每一层颜色
增加:
cell.backgroundColor = [UIColor clearColor];//我是由于这层挡住了,大家注意下每一层颜色
在之前的版本中UITableViewCell的backgroundColor是透明背景的,但是在iOS7中是默认白色背景,如果在TableView后面加入背景的应用要注意了,在创建UITableViewCell的时候把backgroundColor设置为[UIColor clearColor]
UILabel不一致的background
对于UILabel,在iOS 7中它的background颜色默认是clearColor,而在iOS 6中默认的是白色。所以,我们最好在代码中对label的background颜色进行明确的设置:
- view.backgroundColor = [UIColor clearColor];
view.backgroundColor = [UIColor clearColor];
我这是自定义的xib的cell:用xib自定义的cell上的按钮不能响应点击事件,一种是把按钮放到cell的contentView上,或者是设置[cell.contentView setUserInteractionEnabled: NO];来屏蔽cell上的点击事件
如果你最近在做对iOS7的兼容时,发现你的table view cell显示不正常。这很可能是你以前的用法不对。Table view cell的自定义内容应该作为 cell.contentView的子view添加到cell中,如果你直接用 [cell addSubView:]方法而不是[cell.contentView addSubView:]方法添加子元素,那么就可能在iOS7下出来异常的表现。主要原因是iOS7的Table view cell内部实现有了部分变化。
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- UITableViewCell * cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"cellIdentifier"];
- UIView * subview = [[XXView alloc] init];
- subview.userInteractionEnabled = NO;// 不设为NO会屏蔽cell的点击事件
- subview.backgroundColor = [UIColor clearColor];// 设为透明从而使得cell.backgroundColor有效.
- subview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
- [cell.contentView addSubview:subview];// cell.contentView是个readonly属性,所以别想着替换contentView了.
- return cell;
- }
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell * cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"cellIdentifier"]; UIView * subview = [[XXView alloc] init]; subview.userInteractionEnabled = NO;// 不设为NO会屏蔽cell的点击事件 subview.backgroundColor = [UIColor clearColor];// 设为透明从而使得cell.backgroundColor有效. subview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; [cell.contentView addSubview:subview];// cell.contentView是个readonly属性,所以别想着替换contentView了. return cell; }
在ios5,ios6中正常执行的动画,但到ios7中不定时的会消失。
解决方案:在可能消失的地方加上“[UIView setAnimationsEnabled:YES]”,比如action方法,viewWillappear方法等。
网上暂时还没有与这个有关的问题,与这个类似:http://stackoverflow.com/questions/18880584/ios-7-animation-block-not-being-called
视图控制器接口wantsFullScreenLayout已作废。如果你像以前那样地指定wantsFullScreenLayout = NO,iOS 7中视图控制器会在将其内容显示到一个意外的屏幕位置。
NSString 绘制
ios7 下使用
- (void)drawAtPoint:(CGPoint)point withAttributes:(NSDictionary *)attrs
进行绘制,需要定义attributes,对样式进行定义。
例如attributes是@{NSFontAttributeName:[UIFontsystemFontOfSize:8], NSStrokeColorAttributeName:[[UIColorgreenColor] colorWithAlphaComponent:0.5]},但这个属性会影响上下文。
ios7 之前使用
- (CGSize)drawAtPoint:(CGPoint)point withFont:(UIFont *)font 绘制。
navigation controller容器中布局到ios7中往上偏移了64px
iOS6中默认的布局将从navigation bar的底部开始,但到了iOS7中默认布局从navigation bar的顶部开始,这就是为什么所有的UI元素都往上漂移了。因为在iOS7中,苹果引入了一个新的属性,叫做[UIViewController setEdgesForExtendedLayout:],它的默认值为UIRectEdgeAll,使用edgesForExtendedLayout指定视图的哪条边需要扩展,不用理会操作栏的透明度。所以这种情况快速修复的方法是:在-(void)viewDidLoad中添加如下一行代码:
- self.edgesForExtendedLayout = UIRectEdgeNone;
self.edgesForExtendedLayout = UIRectEdgeNone;
extendedLayoutIncludesOpaqueBars
关于这个属性的测试版本中默认值是YES,正式版本是NO!
如果你使用了不透明的navigation bar,设置edgesForExtendedLayout 还是默认值UIRectEdgeAll,你又想整个view全屏(navigation bar下面的内容网上漂移64px) extendedLayoutIncludesOpaqueBars 的值设置为YES。
例如:
- 在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中给uinavigationbar设置背景图片使之不透明:
- CGSize imageSize = CGSizeMake(1, 1);
- UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0);
- [[UIColor greenColor] set];
- UIBezierPath * path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];
- [path fill];
- UIImage *image = UIGraphicsGetImageFromCurrentImageContext ();
- UIGraphicsEndImageContext();
- [[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中给uinavigationbar设置背景图片使之不透明:
CGSize imageSize = CGSizeMake(1, 1);
UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0);
[[UIColor greenColor] set];
UIBezierPath * path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];
[path fill];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext ();
UIGraphicsEndImageContext(); [[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
然后在需要全屏的UIViewController中设置:
- self.extendedLayoutIncludesOpaqueBars = YES;
self.extendedLayoutIncludesOpaqueBars = YES;
隐藏状态条
原来在ios6中是:
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- {
- // Override point for customization after application launch.
- [[UIApplication sharedApplication] setStatusBarHidden:YES];
- return YES;
- }
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[UIApplication sharedApplication] setStatusBarHidden:YES];
return YES;
}
现在在ios7中无效了。
快速解决:
在项目plist文件中修改为:
View controller-based status bar appearance 的值为NO。
但是我认为这个快速解决是没有按照苹果的思路来解决的,而且会有些问题,比如,当你在某个界面隐藏了status bar,退回到上一个界面时,status bar仍然是隐藏的。 首先,苹果把View controller-based status bar appearance默认的值设为YES,是有他的道理的,新系统下,苹果希望我们的viewcontroller去控制status bar,也就是说,我们大多数的界面应该是统一的,偶尔一些viewcontroller需要status bar特殊控制的,完全交给当前的viewcontroller来做。那么推荐解决方案:
保持View controller-based status bar appearance 的默认值为YES,然后在ViewController中重写prefersStatusBarHidden方法:
- - (BOOL)prefersStatusBarHidden
- {
- return YES;
- }
- (BOOL)prefersStatusBarHidden
{
return YES;
}
状态栏样式修改:
在在UIViewController或子类中实现以下两个方法:
- - (BOOL)prefersStatusBarHidden
- {
- return YES;
- }
- - (UIStatusBarStyle)preferredStatusBarStyle{
- return UIStatusBarStyleLightContent;
- }
- (BOOL)prefersStatusBarHidden
{
return YES;
}
- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
在需要刷新状态栏样式的时候,调用
- - (void)setNeedsStatusBarAppearanceUpdate
- (void)setNeedsStatusBarAppearanceUpdate
在iOS7 UINavigationController中侧滑手势返回
假如你自定义leftBarButtonItem,返回手势会失效,需要实现:
- self.navigationController.interactivePopGestureRecognizer.delegate = self;
self.navigationController.interactivePopGestureRecognizer.delegate = self;
假如你没有自定义leftBarButtonItem或其他需求而不需要手势,必须实现:
- self.navigationController.interactivePopGestureRecognizer.enabled = NO;
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
在iOS 6 中,tintColor 可以用来给导航栏的背景着色、tab 栏、工具栏、搜索栏、搜索栏的 范围选择栏着色。而在iOS 7 中,给背景着色只需要使用barTintColor 属性就可以了,所以iOS7中barTintColor 取代原有的 tintColor, 原有的tintColor只修改对应bar上的按钮颜色。
Navigation Bar
也就是说如果设置Navigation Bar的图片,并且这个图片高度保持在44point(88px),那么IOS5,6,7的效果是一致的。
参考:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/Bars.html#//apple_ref/doc/uid/TP40013174-CH8-SW1
UIBarButtonItem
在iOS7中自定义的 UIBarButtonItem 所有的item向中间偏移了,如果需要适配ios6的风格需要修改
简单处理:
- UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
- initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
- target:nil action:nil];
- negativeSpacer.width = -16;// it was -6 in iOS 6
- [self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:negativeSpacer, requriedButton/*this will be the button which u actually need*/, nil] animated:NO];
UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil action:nil];
negativeSpacer.width = -16;// it was -6 in iOS 6
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects:negativeSpacer, requriedButton/*this will be the button which u actually need*/, nil] animated:NO];
如果想不修改源代码,例如setLeftBarButtonItem等方法,可以在category中覆盖:
- #import "UINavigationItem+PtHelper.h"
- @implementation UINavigationItem (PtHelper)
- #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
- - (void)setLeftBarButtonItem:(UIBarButtonItem *)_leftBarButtonItem
- {
- if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
- {
- UIBarButtonItem *negativeSeperator = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
- negativeSeperator.width = -16;
- if (_leftBarButtonItem)
- {
- [self setLeftBarButtonItems:@[negativeSeperator, _leftBarButtonItem]];
- }
- else
- {
- [self setLeftBarButtonItems:@[negativeSeperator]];
- }
- [negativeSeperator release];
- }
- else
- {
- [self setLeftBarButtonItem:_leftBarButtonItem animated:NO];
- }
- }
- - (void)setRightBarButtonItem:(UIBarButtonItem *)_rightBarButtonItem
- {
- if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
- {
- UIBarButtonItem *negativeSeperator = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
- negativeSeperator.width = -10;
- if (_rightBarButtonItem)
- {
- [self setRightBarButtonItems:@[negativeSeperator, _rightBarButtonItem]];
- }
- else
- {
- [self setRightBarButtonItems:@[negativeSeperator]];
- }
- [negativeSeperator release];
- }
- else
- {
- [self setRightBarButtonItem:_rightBarButtonItem animated:NO];
- }
- }
- #endif
- @end
#import "UINavigationItem+PtHelper.h" @implementation UINavigationItem (PtHelper) #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1
- (void)setLeftBarButtonItem:(UIBarButtonItem *)_leftBarButtonItem
{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
{
UIBarButtonItem *negativeSeperator = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
negativeSeperator.width = -16; if (_leftBarButtonItem)
{
[self setLeftBarButtonItems:@[negativeSeperator, _leftBarButtonItem]];
}
else
{
[self setLeftBarButtonItems:@[negativeSeperator]];
}
[negativeSeperator release];
}
else
{
[self setLeftBarButtonItem:_leftBarButtonItem animated:NO];
}
} - (void)setRightBarButtonItem:(UIBarButtonItem *)_rightBarButtonItem
{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
{
UIBarButtonItem *negativeSeperator = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
negativeSeperator.width = -10; if (_rightBarButtonItem)
{
[self setRightBarButtonItems:@[negativeSeperator, _rightBarButtonItem]];
}
else
{
[self setRightBarButtonItems:@[negativeSeperator]];
}
[negativeSeperator release];
}
else
{
[self setRightBarButtonItem:_rightBarButtonItem animated:NO];
}
} #endif @end
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode 在ios7中过期
在ios7中使用:
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context
例如:
- CGSize size = CGSizeMake(screenSize.width - self.horizontalMargin * 4.f, 1000.f);
- if(IOS7_OR_LATER){
- CGRect textRect = [text boundingRectWithSize:size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName:font} context:nil];
- self.contentWidth = self.contentWidth!=0.f?self.contentWidth:textRect.size.width;
- self.contentHeight = self.contentHeight!=0.f?self.contentHeight:textRect.size.height;
- }else{
- CGSize textSize = [text sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
- self.contentWidth = self.contentWidth!=0.f?self.contentWidth:textSize.width;
- self.contentHeight = self.contentHeight!=0.f?self.contentHeight:textSize.height;
- }
CGSize size = CGSizeMake(screenSize.width - self.horizontalMargin * 4.f, 1000.f);
if(IOS7_OR_LATER){
CGRect textRect = [text boundingRectWithSize:size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName:font} context:nil];
self.contentWidth = self.contentWidth!=0.f?self.contentWidth:textRect.size.width;
self.contentHeight = self.contentHeight!=0.f?self.contentHeight:textRect.size.height;
}else{
CGSize textSize = [text sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
self.contentWidth = self.contentWidth!=0.f?self.contentWidth:textSize.width;
self.contentHeight = self.contentHeight!=0.f?self.contentHeight:textSize.height;
}
https://developer.apple.com/library/ios/documentation/UIKit/Reference/NSString_UIKit_Additions/Reference/Reference.html#//apple_ref/occ/instm/NSString/boundingRectWithSize:options:attributes:context:
ios7新增的属性sectionIndexBackgroundColor,在索引没有被触摸时默认是白色。
- if (IS_IOS_7) {
- self.playersTableView.sectionIndexBackgroundColor = [UIColor clearColor];
- // self.playersTableView.sectionIndexTrackingBackgroundColor = [UIColor clearColor];
- }
if (IS_IOS_7) {
self.playersTableView.sectionIndexBackgroundColor = [UIColor clearColor];
// self.playersTableView.sectionIndexTrackingBackgroundColor = [UIColor clearColor];
}
在ios7 ipad中tabbar高度不是49
In iOS 7, a tab bar on iPad has a height of 56 points.
兼容sdk7&iOS7的issue解决小片段总结的更多相关文章
- Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法
参考:Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法 Vs2012的下载地址: https://msdn.microsoft.com/en ...
- 实用的 CSS 小片段
看了 30 Seconds CSS,有了许多收获,所以写下了这篇文章,算是收藏一些代码小片段,留作后用. 一.手写 Loading 动画 (1)弹性加载动画 CSS 代码如下: .bounce-loa ...
- 腾讯WeTest兼容服务再次升级,支持小程序兼容
WeTest 导读 小程序作为微信内能被便捷地获取和传播的工具,吸引着越来越多的开发者加入其中.无论是小游戏.零售.出行服务还是生活餐饮等,各行各业的小程序出现在用户的手机上,在给用户带来便利的同时, ...
- 【活动专辑】Gitee X DolphinScheduler 邀你一起参与 issue 解决赢好礼!
在你参与 DolphinScheduler 项目开发时,是否曾因为这些问题困惑: 对项目感兴趣,但不清楚自己可以为项目做什么 在众多 issue 中,找不到合适自己参与的 issue 任务 认为参与开 ...
- 解决小程序中Data.parse()获取时间戳IOS不兼容
由于与后台接口必须对比时间戳所以首先得前台获取时间戳.刚开始是获取手机本地时间,但用户改了时间就废了..... 后来就从服务器上获取个时间再转换为时间戳(是不是很操蛋,先从服务器上获取在TM的自己比较 ...
- 如果解决小程序1024kb渲染之坑
问题: 在小程序开发中如果有那么个场景和操作步骤,获取商品下拉列表商品列表data为goodsList 当从后台获取数据response.data.list,通常我们会setData({goodsLi ...
- js中使用new Date(str)创建时间对象不兼容firefox和ie的解决方式
/** * 解决 ie,火狐浏览器不兼容new Date(s) * @param strDate * 返回 date对象 * add by zyf at 2015年11月5日 */ function ...
- placeholder不兼容 IE10 以下版本的解决方法
对于密码输入框placeholder的兼容问题:HTML代码:<input type="password" id="loginPassword" plac ...
- [解决]小程序要求的 TLS 版本必须大于等于 1.2
今天微信小程序发现wx.request不好使了,调试报错: 小程序要求的 TLS 版本必须大于等于 1.2 查官方文档 解决方法 在 PowerShell中运行以下内容, 然后重启服务器 # Enab ...
随机推荐
- 匿名管道 远程cmd
管道是单向的,传送数据的方向是固定的,所以互相通信需要两个管道. STARTUPINFO si; ZeroMemory(&si,sizeof(si)); si.dwFlags = STARTF ...
- pb中读取大文本数据
string ls_FileName,lb_FileDatas,lb_FileData long ll_FileLen,ll_Handle,ll_Loop,ll_Bytes,ll_Loops,ll_ ...
- 深入探讨ES6生成器
如果对于ES6生成器不熟悉,请先阅读并运行下http://www.cnblogs.com/linda586586/p/4282359.html里面的代码.当你感觉掌握了基础之后,我们可以深入探讨一些细 ...
- 使用FFmpeg解码H264-2016.01.14
使用jni方式调用FFmepg项目中接口,对H264裸码进行解码. 该Demo主要实现从文件中读取H264编码的视频流,然后使用FFmpeg解码,将解码后的码流保存到文件. 工程目录结构如图所示: A ...
- WPF拖动DataGrid中的数据到ListBox
1.效果图: 2.XAML <Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.m ...
- 九度OJ 1544 数字序列区间最小值
题目地址:http://ac.jobdu.com/problem.php?pid=1544 题目描述: 给定一个数字序列,查询任意给定区间内数字的最小值. 输入: 输入包含多组测试用例,每组测试用例的 ...
- Eclipse 中打不开android sdk managerf
今天配置android sdk 的时候,出现了android sdk 打不开的情况.无论直接点击 sdk manager.exe 还是从eclipse启动,都不起作用,双重启(重启eclipse和ad ...
- Tomcat启动过程(三):从SocketProcessor到Container
1.Http11Protocol中的内部类Http11ConnectionHandler,执行其process方法 if (processor == null) { processor = creat ...
- 安装 centos7 注意事项
最近一直没有写博客,把之前的折腾记录写下. 1 下载好镜像文件,刻录光盘. 2 用DVD安装CENTOS7 3 有些处理器不支持Cento7安装,需要重新编译内核文件.我不懂 . 我用的ACER ...
- c#自定义进度条
有些时候我们做的程序需要进度条,而vs提供的控件不是我们想要的.先看效果图: 进度条闪烁动画,当然背景可设为Transparent 之前想手绘进度条线条的,结果控件运行时会闪烁,所以直接用 ...