文本经常需要和键盘打交道,现在记录一下初步的键盘相关的知识点。
键盘出现和消失促发两个消息。
UIKeyboardWillShowNotification (出现通知)
UIKeyboardWillHideNotification (隐藏通知)
NSNotificationCenter 监听两个消息即可捕捉到键盘弹出和隐藏的两个消息。
文本经常需要和键盘打交道,现在记录一下初步的键盘相关的知识点。
键盘出现和消失促发两个消息。
UIKeyboardWillShowNotification (出现通知)
UIKeyboardWillHideNotification (隐藏通知)
NSNotificationCenter 监听两个消息即可捕捉到键盘弹出和隐藏的两个消息。
UIImage 有很多有用的东西,前段时间接触了coreImage的API,发现有一个CIImage的东西,同样还有一个CGImage的东西,这三者总是可以切换起来,多少让人觉得这个东西很能耐。
IOS编程揭秘 书中记录着如下一段话。
1 | UIImage类的Core Graphics |
UILable 的用法涉及内容有如下
UIlabel可以显示指定的行数,设置numberOfLines =0 则为不限制行数,因为UIlabel不是Icontrol的方面,没有addTarget和block等方法处理相应的行为机制,但支持扩展手势触控等方法处理点击,不过对于html 超链接响应情况,在之前看过是需要采用第三方处理机制处理。
在日常使用过程,对于文本方法计算高度的用法很常用,ios提供相应计算方法。如属于NSString的类别(NSStringDrawing.h)该类为此提供相应处理解决方案,提供计算高度和文本大小的方法。
注意到 过去ios6的版本 提供sizeWithFont方法 在ios 7.0 已经不生效,需要改成其他方法处理。boundingRectWithSize 后续推荐的方式。
1 | - (CGSize)sizeWithAttributes:(NSDictionary *)attrs NS_AVAILABLE_IOS(7_0); |
1 | - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0); |
1 | self.label = [[UILabel alloc]initWithFrame:CGRectMake(85, 0, self.view.frame.size.width-85, 70)]; |
下面计算一下高度,当采用默认字体的时候,字体号为17,其高度约为20, 字体为14的时候,高度约为16~17之间
1 | 字体号:17 ,文本高:20 |
这些字体是默认字体,要是采用其他字体或者设置粗体 ,估计值会受到一些浮动影响。
1 | [self getTextHeight:17 width:self.view.frame.size.width-85]; |
在设置 leftBarButtonItem的时候,又会少了一个左箭头。
一般情况下,自定义一个新的标题会这样操作,设置完成后,问题来了,发现左箭头不见了。1
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:@selector(onSelect)];
一般情况下,自定义 UIBarButtonItem 使用设置图片有如下,但发现文本不能设置显示了。1
2[[UIBarButtonItem alloc]initWithImage:image style:UIBarButtonItemStylePlain target:self
action:@selector(onSelect)];
还有一种方式,既有文本又有左箭头的需求,只能使用下面这种方式,自定义一个按钮视图。1
[[UIBarButtonItem alloc]initWithCustomView:backButton];
问题前提: 使用pushViewController的时候,该界面返回情况会默认是上一级的标题, 更改文字,又会对本身产生影响。原本意图很简单,就是想设置自己的文字,又想有左箭头。1
[self.navigationController pushViewController:cityController animated:YES];
iPhone 截屏并本地存储
使用UIGraphicsBeginImageContext 相关绘图API 获取到图像信息,使用UIImageWriteToSavedPhotosAlbum 方法就可以保存到相关的库里面去
1 | UIWindow *window =[UIApplication sharedApplication].keyWindow; |
1 | CGRect frame = CGRectMake(0, 100, 80, 40); |
1 | UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"标题" message:@"你的内存已满" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:nil, nil]; |
漏洞及渗透练习平台:
WebGoat漏洞练习环境
https://github.com/WebGoat/WebGoat
https://github.com/WebGoat/WebGoat-Legacy
Damn Vulnerable Web Application(漏洞练习平台)
https://github.com/RandomStorm/DVWA
数据库注入练习平台
https://github.com/Audi-1/sqli-labs
用node编写的漏洞练习平台,like OWASP Node Goat
https://github.com/cr0hn/vulnerable-node
升级XCode后,Qt新建项目出现了问题:
Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.