前言ios
边开发边学习,边攒经验,汇总一下记录到这里学习
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com
农民伯伯: http://over140.cnblogs.comui
一、隐藏/显示密码功能编码
光设置secureTextEntry还不行,你会发现UITextField在切换到显示密码时会多一个空字符,看着巨别扭,须要在更改secureTextEntry后进行以下设置:spa
let pwd = psdField.text
self.psdField.text = pwd +
"
"
self.psdField.text = pwd
二、获取当前类的名称code
String.fromCString(object_getClassName(self))
注意:经过_stdlib_getDemangledTypeName也能取到,可是若是在父类里面去就只能取到父类的名称blog
三、 国际化开发
find . \( -name '*.m' -o -name '*.h' \) -print0 | xargs -0 genstrings -o en.lproj 字符串
凡是使用了NSLocalizedString的字符串都能被找到,支持子目录查找,注意替换en.lprojget
四、UITableView分割线的显示问题
去掉分割线:设置UITableView的separatorStyle = UITableViewCellSeparatorStyle.None
去掉多余的分割线:设置UITableView的tableFooterView = UIView() (要是不设置会很丑,无论有没有数据都会显示分割线)
处理 iOS8 分割线左边距设置为0失效的问题,参考这里(http://stackoverflow.com/questions/25770119/ios-8-uitableview-separator-inset-0-not-working):
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
//
Remove seperator inset
if cell.respondsToSelector(
"
setSeparatorInset:
") {
cell.separatorInset = UIEdgeInsetsZero
}
//
Prevent the cell from inheriting the Table View's margin settings
if cell.respondsToSelector(
"
setPreservesSuperviewLayoutMargins:
") {
cell.preservesSuperviewLayoutMargins =
false
}
//
Explictly set your cell's layout margins
if cell.respondsToSelector(
"
setLayoutMargins:
") {
cell.layoutMargins = UIEdgeInsetsZero
}
}
五、 格式化数字输出 K/M
extension String {
public func substring(startIndex: Int, endIndex: Int) -> String{
return (self
as NSString).substringWithRange(NSRange(location: startIndex, length: endIndex - startIndex))
}
}
public
static func prettyNumber(num: Double) -> String{
if (num <
10000) {
return
"
\(Int(num))
";
}
else
if (num <
100000) {
return
"
\(num / 1000.0)
".substring(
0, endIndex:
4) +
"
K
"
}
else
if (num <
1000000) {
return
"
\(num / 1000.0)
".substring(
0, endIndex:
3) +
"
K
"
}
else
if (num <
100000000) {
return
"
\(num / 1000000.0)
".substring(
0, endIndex:
4) +
"
M
"
}
else
if (num <
1000000000) {
return
"
\(num / 1000000.0)
".substring(
0, endIndex:
3) +
"
M
"
}
else
if (num <
100000000000) {
return
"
\(num / 1000000000.0)
".substring(
0, endIndex:
4) +
"
M
"
}
else
if (num <
1000000000000) {
return
"
\(num / 1000000000.0)
".substring(
0, endIndex:
3) +
"
M
"
}
return
"
INF
";
}
六、 判断屏幕是不是横屏
public static func isIsLandscape() -> Bool {
return UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation) || UIApplication.sharedApplication().statusBarOrientation == UIInterfaceOrientation.LandscapeLeft || UIApplication.sharedApplication().statusBarOrientation == UIInterfaceOrientation.LandscapeRight
}
七、 URL 编码
text.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
这个 text 的类型是 String ,经常使用于搜索功能,在 URL 中包含被搜的关键字,若是不处理搜中文或者带空格的英文会直接崩溃