【Swift】iOS开发笔记(一)
1、隐藏/显示密码功能
光设置secureTextEntry还不行,你会发现UITextField在切换到显示密码时会多一个空字符,看着巨别扭,需要在更改secureTextEntry后进行如下设置:
self.psdField.text = pwd + " "
self.psdField.text = pwd
2、获取当前类的名称
注意:通过_stdlib_getDemangledTypeName也能取到,但是如果在父类里面去就只能取到父类的名称
3、 国际化
find . \( -name '*.m' -o -name '*.h' \) -print0 | xargs -0 genstrings -o en.lproj
凡是使用了NSLocalizedString的字符串都能被找到,支持子目录查找,注意替换en.lproj
4、UITableView分割线的显示问题
去掉分割线:设置UITableView的separatorStyle = UITableViewCellSeparatorStyle.None
去掉多余的分割线:设置UITableView的tableFooterView = UIView() (要是不设置会很丑,不管有没有数据都会显示分割线)
处理 iOS8 分割线左边距设置为0失效的问题,参考这里(http://stackoverflow.com/questions/25770119/ios-8-uitableview-separator-inset-0-not-working):
// 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
}
}
5、 格式化数字输出 K/M
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 ";
}
6、 判断屏幕是否是横屏
public static func isIsLandscape() -> Bool { return UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation) || UIApplication.sharedApplication().statusBarOrientation == UIInterfaceOrientation.LandscapeLeft || UIApplication.sharedApplication().statusBarOrientation == UIInterfaceOrientation.LandscapeRight }
7、 URL 编码
text.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
这个 text 的类型是 String ,常用于搜索功能,在 URL 中包含被搜的关键字,如果不处理搜中文或者带空格的英文会直接崩溃
本文转自博客园农民伯伯的博客,原文链接:【Swift】iOS开发笔记(一),如需转载请自行联系原博主。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
【Swift】 应用内显示 AppStore 某个应用的详情
一般网上的文章的代码: func openAppStore(url: String){ if let number = url.rangeOfString("[0-9]{9}", options: NSStringCompareOptions.RegularExpressionSearch) { let appId = url.substringWithRange(number) let productView = SKStoreProductViewController() productView.delegate = self productView.loadProductWithParameters([SKStoreProductParameterITunesItemIdentifier : appId], completionBlock: { [weak self](result: Bool, error: NSError?) -> Void in if result { self?.presentViewController(productView, animated...
-
下一篇
【Swift 2.0】实现简单弹幕功能
let DANMAKU_SPEED: CGFloat = 150 // 弹幕每秒移动速度 let DANMAKU_SPACE_TIME: NSTimeInterval = 1 // 弹幕之间的时间间隔 let DANMAKU_MAX_ROW = 3 // 最多同时弹幕行数 let danmakuFont = UIFont.systemFontOfSize(18) // 弹幕字体大小 var rowArray = Array<Array<Danmaku>>(count: 3, repeatedValue: Array<Danmaku>()) var danmakuQueue = NSOperationQueue() // 队列 class Danmaku : NSObject{ var msg: Msg var view: UILabel? var size = CGSize(width: 0, height: 0) var row = 0 var startTime: NSDate? var duration: NSTimeInterval = 0 ...
相关文章
文章评论
共有0条评论来说两句吧...