是否可以为细胞设定最小高度?我用动态:
tableView.estimatedRowHeight = 83.0
tableView.rowHeight = UITableViewAutomaticDimension
Run Code Online (Sandbox Code Playgroud)
但是当我news title label text在一行时,我需要为细胞设置最小高度.
有一个函数getUser中RequestManager class调用我的VC。
func getUser(onCompletion: @escaping (_ result: User?, error: String?) -> Void) {
Alamofire.request(Router.getUser).responseJSON { (response) in
// here is the work with response
}
}
Run Code Online (Sandbox Code Playgroud)
如果此请求返回,403则表示access_token已过期。我需要刷新令牌并重复来自我的请求VC。
现在的问题。
如何刷新令牌并以正确的方式重复请求?
处理错误并刷新MyViewController或getUser方法中的令牌不是一个好主意,因为我有很多VCsand request methods。
我需要的是这样的:VC调用该方法,并得到了User即使令牌到期且refreshToken必须不能在所有的请求方法。
编辑
refreshToken 方法
func refreshToken(onCompletion: @escaping (_ result: Bool?) -> Void) {
Alamofire.request(Router.refreshToken).responseJSON { (response) in
print(response)
if response.response?.statusCode == …Run Code Online (Sandbox Code Playgroud) 我得到过滤的对象,如:
realm.objects(Post.self).filter("title contains '\(searchText)'")
Run Code Online (Sandbox Code Playgroud)
但我需要不区分大小写的搜索选项,Realm docs说:
字符串的不区分大小写的比较,例如名称CONTAINS [c]'Ja'.请注意,只有字符"AZ"和"az"才会被忽略.可以与[d]修饰符组合使用.
那我该怎么办呢?
realm.objects(Post.self).filter("title contains[c] '\(searchText)'")
Run Code Online (Sandbox Code Playgroud)
不起作用......
UPD:
得到它了.我正在尝试过滤西里尔符号.那么下一个问题,我在哪里可以添加西里尔过滤?
我输入CoreLocation,然后加locationManager.delegate = self在didFinishLaunchingWithOptions和let locationManager = CLLocationManager()出来.
但我在AppDelegate中有这个错误.我错了什么?
我尝试了多种方法来解决此问题,但没有。tableView加载更多数据后,我跳了起来。我将下载方法称为willDisplay:
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
let lastObject = objects.count - 1
if indexPath.row == lastObject {
page = page + 1
getObjects(page: page)
}
}
Run Code Online (Sandbox Code Playgroud)
并在此处插入行:
func getObjects(page: Int) {
RequestManager.sharedInstance.getObjects(page: page, success: { objects in
DispatchQueue.main.async(execute: {
self.objects = self.objects + objects
self.tableView.beginUpdates()
var indexPaths = [IndexPath]()
for i in 0...objects.count - 1 {
indexPaths.append(IndexPath(row: i, section: 0))
}
self.tableView.insertRows(at: indexPaths, with: .bottom)
self.tableView.endUpdates()
});
})
}
Run Code Online (Sandbox Code Playgroud)
那我怎么了?为什么 …
当用户向上滚动表格时,我会隐藏导航栏.
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
if self.navigationController?.navigationBarHidden == false {
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
}
Run Code Online (Sandbox Code Playgroud)
但是这种方法也隐藏了状态栏.
无法保留我的状态栏.这些方法不起作用:
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: .None)
prefersStatusBarHidden()
Run Code Online (Sandbox Code Playgroud)
请帮忙!
应用程序崩溃并显示以下网址:
let jsonUrl = "http://api.com/??????/events"
let session = NSURLSession.sharedSession()
let shotsUrl = NSURL(string: jsonUrl)
let task = session.dataTaskWithURL(shotsUrl!)
Run Code Online (Sandbox Code Playgroud)
日志:
fatal error: unexpectedly found nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)
这是因为网址中有西里尔文符号。我该如何解决这个问题。谢谢你的帮助!
scrollview向下滚动时,我想禁用弹跳功能。
当我禁用垂直反弹时,我将无法refresh打开桌子。任何建议如何禁用反弹,但启用刷新表?
我以这种方式刷新:
self.refreshControl = UIRefreshControl()
self.refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refreshControl)
func refresh(sender:AnyObject) {
getJson()
self.tableView.reloadData()
self.refreshControl.endRefreshing()
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
我已经在Objective-C中编写了一个Cocoa应用程序,该应用程序在nib文件的CustomView中进行了一些绘制。通过从我的视图控制器类中调用“ [theView setNeedsDisplay:YES]”来更新自定义视图,并且一切正常。但是,当我将此应用程序转换为Swift 2.1时,无法使用“ theView.setNeedsDisplay()”(带有或不带有“ true”)更新视图,自动完成功能不提供此调用,并且当我尝试使用时尽管如此,我仍然收到一条错误消息,指出该类没有名为“ setNeedsDisplay”的成员。应用程序中的其他所有内容均与Objective-C版本完全相同。有没有其他人有这个问题?我在El Capitan上运行XCode 7.1.1。
我正在refreshcontrol以tableview这种方式添加,但视图的背景颜色是白色。我怎样才能将其设置为默认值?谢谢。
var refreshControl:UIRefreshControl!
refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
tableView.addSubview(refreshControl)
Run Code Online (Sandbox Code Playgroud)
UPD:它也不能顺利工作。
我需要在表格视图中每五个新闻单元格后添加一个仅包含图像的广告单元格.
如果我要为广告单元格添加第二部分,则会在所有新闻单元格后显示广告单元格.如果我要添加广告单元格indexPath.row == 4,我的第五个新闻单元格将不会出现因为cell.details = news[indexPath.row].
有什么建议我该怎么办?谢谢.