我知道如何自定义UIBarButtonItem使用-setBackgroundImage: forState: barMetrics:,但我想使用不同的图像UIBarButtonItemStyleDone和UIBarButtonItemStylePlain.
有没有办法使用UIAppearance协议来实现这一目标?或者每次我想要一个"完成"样式按钮时我是否必须设置图像?
(我试着搞乱如下代码:
[[UIBarButtonItem appearance] setBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarButtonItemStyleDone];
但这只是用"完成"图像设置每个条形按钮.)
谢谢!
当我使用-addObserverForName: object: queue: usingBlock:了NSNotificationCenter在-viewDidLoad:我的视图控制器的方法,该-dealloc方法最终没有被调用.
(当我删除时-addObserverForName: object: queue: usingBlock:,-dealloc再次调用.)
使用-addObserver: selector: name: object:似乎没有这个问题.我究竟做错了什么?(我的项目是使用ARC.)
下面是我的实现示例,以防我在这里做错了:
[[NSNotificationCenter defaultCenter] addObserverForName:@"Update result"
object:nil
queue:nil
usingBlock:^(NSNotification *note) {
updateResult = YES;
}];
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
我尝试添加以下内容(无济于事):
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if ([self isMovingFromParentViewController]) {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
}
Run Code Online (Sandbox Code Playgroud) 我被这一段时间困扰了......
当您点击iPhone的Apple手机应用程序中的联系人单元格(进入带有联系人详细信息的视图)并点击上一个视图时,会有一个简短的动画(从蓝色渐变到白色),显示取消选择单元格.这是Apple自己的应用程序中所有表视图的行为,以及根据其人机界面指南推荐的行为.
但是,在我自己的项目中,我一直无法复制这种行为.UITableView当我从详细视图返回时,我的所有单元格都没有被选中.
我查看了Apple的文档中的CoreDataBooks示例代码,该代码具有所需的单元格取消选择行为,并且表格视图似乎"自动"获取行为(没有任何特定实现).
我也尝试在这些非常相似的问题中实现解决方案:
当navigationController弹出视图时,取消选择所选单元格的内容是什么?
但是我总是得到相同的结果 - UITableView当我返回它时,没有选择任何单元格.(即使在添加[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:animated];视图控制器的-viewWillAppear:方法之后.)
也有人建议在一个问题具有的意见[[self tableView] reloadData];中-viewWillAppear:可能会导致不保持选定的单元格.但CoreDataBooks做同样的事情,仍然有所需的行为(貌似),没有任何特定的代码.
有关如何解决问题的任何建议?提前致谢.
在旁注中,我不太明白为什么取消选择单元格的代码应该在-viewWillAppear:(而不是-viewDidAppear:)中实现.在屏幕上显示表格视图之前,这不会导致一切发生吗?这可能只是因为我对视图的生命周期缺乏正确的理解,但任何澄清都会很好.再次感谢.
我不确定"淡出"是否是正确使用的术语,因为它似乎很多地涉及动画效果,但我想要实现的目标可以在iPhone Safari应用程序的地址栏中看到.当URL太长而无法显示时,字符串的末尾"淡出"而不是用"..."截断.
我认为这可以通过在XIB文件中将"断线"设置从"截断尾部"更改为"剪辑"然后使用具有透明度的图像来创建效果来轻松完成.但设置为"剪辑"似乎剪切在一个单词的结尾,而不是单词的中间,或甚至是字母的中间,如Safari或Chrome for iPhone中所示.这对我来说并不适用,它实际上给人的印象是文本是完整的,当仔细检查时,用户会注意到文本没有意义.
什么是"淡出"不适合文本标签的字符串的最佳方法?提前致谢.
dismissViewControllerAnimated:completion:状态的iOS文档:
如果你目前在连续的几个视图控制器,从而构建呈现视图控制器的堆栈,调用视图控制器这种方法下的堆栈驳回其直接子视图控制器和堆栈上的孩子最重要的视图控制器.发生这种情况时,只有最顶层的视图以动画方式被删除; 任何中间视图控制器都可以从堆栈中删除.最顶层的视图使用其模态过渡样式被忽略,这可能与堆栈中较低的其他视图控制器使用的样式不同.
这意味着在使用时立即解除两个模态视图控制器
[[[self presentingViewController] presentingViewController] dismissViewControllerAnimated:YES completion:nil];
显示的动画应该是被解雇的顶级模态视图.
在iOS 7和之前的情况确实如此,但在iOS 8中,所显示的动画并不是最顶级的视图(根据我的经验,它是第二个最顶层的视图).这种行为是iOS 8中的错误还是我做错了什么?
我打算使用以下代码行:
[[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES selector:@selector(caseInsensitiveCompare:)];
Run Code Online (Sandbox Code Playgroud)
'caseInsensitiveCompare'是我习惯在字符串上使用的方法.但是,示例显示我使用的是:
[[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
Run Code Online (Sandbox Code Playgroud)
(不同的是本地化的词).这个词做了什么 - "本地化"方法与常规方法有何不同?
关于这两种方法的不同,Apple开发人员文档的信息量不大.
我有一个表视图,我想在从详细视图返回时,或者在用户创建项目时从新添加的单元格中取消选择先前选择的单元格.
然而,由于添加有时新项目,该表通过调用刷新reloadData在viewWillAppear:.这意味着即使我有视图,也不会选择任何单元格self.clearsSelectionOnViewWillAppear = NO.
通过在表视图出现(in )之后选择和取消选择单元格viewDidAppear:,取消选择动画的时间明显不同于用户(尝试自己,它更慢,并且感觉不太光滑).
即使在刷新表格视图后,我该如何保留选择?(请记住,根据具体情况,我希望取消选择之前选择的单元格或新创建的单元格.)或者我应该以某种方式重新加载表格中的数据?
检查实例NSDecimalNumber是否为整数是最简单的方法是什么?
谢谢!
ios ×8
iphone ×7
cocoa-touch ×3
objective-c ×2
uitableview ×2
dealloc ×1
ios8 ×1
ipad ×1
nsstring ×1
text ×1
uiappearance ×1
uilabel ×1