1 声明数组变量
(1)
import Foundation
import UIKit
struct News {
var newsTitle: String
var newsCategory: String
}
(2)var newsArray = News
(3)
let news7 = News(newsTitle: “Eclipse mints release new Blackcurrent flavor”, newsCategory: “World”)
let news8 = News(newsTitle: “Aetna and Humana close to multi-billion dollar deal”, newsCategory: “Finance”)
newsArray = [news1, news2, news3, news4, news5, news6, news7, news8]
2 coreData
func applicationWillTerminate(application: UIApplication) {
self.saveContext()
}
// MARK: - Core Data stack
lazy var applicationDocumentsDirectory: NSURL = {
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
return urls[urls.count-1] as! NSURL
}()
lazy var managedObjectModel: NSManagedObjectModel = {
let modelURL = NSBundle.mainBundle().URLForResource("Yahoo_News_Digest_Replicate", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("Yahoo_News_Digest_Replicate.sqlite")
var error: NSError? = nil
var failureReason = "There was an error creating or loading the application's saved data."
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error: &error) == nil {
coordinator = nil
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error
error = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort() // 断言
}
return coordinator
}()
lazy var managedObjectContext: NSManagedObjectContext? = {
let coordinator = self.persistentStoreCoordinator
if coordinator == nil {
return nil
}
var managedObjectContext = NSManagedObjectContext()
managedObjectContext.persistentStoreCoordinator = coordinator
return managedObjectContext
}()
// MARK: - Core Data Saving support
func saveContext () {
if let moc = self.managedObjectContext {
var error: NSError? = nil
if moc.hasChanges && !moc.save(&error) {
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
}
}
3 下拉图片变大
func updatingTableHeaderView() {
var newsHeaderTableRect = CGRect(x: 0, y: -kTableHeightHeader, width: self.view.frame.size.width, height: kTableHeightHeader)
if self.newsTableView.contentOffset.y < -kTableHeightHeader {
newsHeaderTableRect.origin.y = self.newsTableView.contentOffset.y
newsHeaderTableRect.size.height = -self.newsTableView.contentOffset.y
}
self.tableHeaderView.frame = newsHeaderTableRect
visiblePortionOfNewsTableHeader(newsHeaderTableRect: newsHeaderTableRect)
}
func visiblePortionOfNewsTableHeader(#newsHeaderTableRect: CGRect) {
self.tableHeaderMaskToBeVisible = CAShapeLayer()
self.tableHeaderMaskToBeVisible.fillColor = UIColor.blackColor().CGColor
self.tableHeaderView.layer.mask = self.tableHeaderMaskToBeVisible
let trapeziumHeaderMask = UIBezierPath()
trapeziumHeaderMask.moveToPoint(CGPointMake(0, 0))
trapeziumHeaderMask.addLineToPoint(CGPointMake(newsHeaderTableRect.width, 0))
trapeziumHeaderMask.addLineToPoint(CGPointMake(newsHeaderTableRect.width, newsHeaderTableRect.height))
trapeziumHeaderMask.addLineToPoint(CGPointMake(0, newsHeaderTableRect.height - kTableToBeCutOff))
self.tableHeaderMaskToBeVisible.path = trapeziumHeaderMask.CGPath
}
4 cell 渐变的出现
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
if self.arrayCheckCellHasLoaded[indexPath.row] == false {
cell.alpha = 0
UIView.animateWithDuration(1, animations: { () -> Void in
cell.alpha = 1
});
self.arrayCheckCellHasLoaded[indexPath.row] = true
}
}