在iPhone音乐应用程序中,选择"艺术家","歌曲"或"专辑"会在UI的右侧显示一个tableView,其中包含单个字母的垂直列表,可以快速滚动.如何在我的应用中启用此功能?
干杯,道格
这有什么区别:
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[self doSomthing:object];
}];
Run Code Online (Sandbox Code Playgroud)
还有这个:
[self performSelectorOnMainThread:@selector(doSomething:) withObject:object waitUntilDone:NO]
Run Code Online (Sandbox Code Playgroud) 我正在从Java切换到Objective-c,我遇到了一些困难.我没有取得太大成功就找到了这个问题.
我有一个存储NSMutableArrays的NSMutableArray.如何向阵列添加数组?
我知道有很多类似的问题,但我找不到专门解决这个问题的问题.
self.navigationController
调用时为什么为null viewDidLoad
,但从外部调用时是否正确viewDidLoad
?
这是我输出NSLog(@"%@",self.navigationController);
的第一个是调用viewDidLoad
,第二个是我用接口调用的方法向接口添加一个按钮NSLog(@"%@",self.navigationController);
:
NavApp[31524:11003] (null)
NavApp[31524:11003] <UINavigationController: 0x6e21190>
Run Code Online (Sandbox Code Playgroud)
我知道这种行为必须有一些简单的解释,我只是好奇它是什么.谢谢!
我希望这是一个简单的问题.如果我有一个UINavigationController并且我将一个新的视图控制器推入到具有动画过渡的堆栈中,我如何检测动画何时完成并且新的视图控制器在屏幕上?
我有几个场景,我需要推送一个新的控制器,然后必须进行长时间运行.我想首先推送新视图,所以在我开始长时间阻止主线程之前屏幕上有一些东西.如果我在我的长期运行任务之后立即执行推送,则视图将不会显示,直到两者完成后,主线程才能再次处理事件.
因此,一旦动画完成并且视图在屏幕上,我想要做的就是能够在新控制器中检测到,然后启动任务.
我有一个看起来像这样的视图层次结构
UIScrollView
|
+- UIView
|
+- UITextField
+- UITextField
+- UIButton
Run Code Online (Sandbox Code Playgroud)
我想要的是用户点击其中一个文本字段并看到屏幕上的键盘能够点击UIView的"空白空间"来隐藏键盘.所以,我不希望,例如,来自UIButton的事件冒泡到UIView(如果我将UITapGestureRecognizer添加到UIView就会发生这种情况).
如何实现所需的功能?
我在故事板中设置了一堆视图控制器,并有一个"下一步"按钮.
我需要这个以两个不同的视图,但我的故事板不允许它.例如,如果满足某些条件,则下一个按钮将转到一个视图,否则,它将转到另一个视图.
任何帮助都非常感谢实现这一点
谢谢.
我有一个NSDictionary
我们会说是这样的:
key: value:
name Bookshelf
movies Array containing: (Movie 1, Movie 2, Movie 3)
books Array containing: (Book 1, Book 2, Book 3)
music Array containing: (Music 1, Music 2, Music 3)
Run Code Online (Sandbox Code Playgroud)
等等.现在我要做的是创建一个tableView,显示所有这些信息,但根据字典键的不同,使用不同类型的单元格.例如,电影使用cellForMovies
书籍使用cellForBooks
音乐cellForMusic
,每个都有自己的布局.
显然,我过于简单化了,但希望你明白我要做的事情.
如果我为每个部分执行部分和不同的单元格类型,我能够完成此操作,但我不想这样做.我希望能够拥有这样的表格,例如:
cellForBooks
cellForMovies
cellForMovies
cellForMusic
cellForBooks
Run Code Online (Sandbox Code Playgroud)
等等......您可以指出我的任何想法或资源?我只关心iOS 5支持(故事板).
用解决方案编辑:
非常感谢所有帮助过的人,特别是将最后一块放在一起的阁楼.
最终工作的是将数据结构更改为字典数组,然后Key: type Value: book/movie/music
向每个条目添加一个.数据结构现在看起来像:
Array[0]: Dictionary: [Key: type Value: book], [Key: name Value: Physics];
Array[1]: Dictionary: [Key: type Value: music], [Key: name Value: Rock];
Run Code Online (Sandbox Code Playgroud)
然后配置单元格我做了这个:
NSString …
Run Code Online (Sandbox Code Playgroud) 我真的在努力将OAuth2纳入项目.我查看了所有不同的OAuth客户端,但文档很少,示例项目已过时.我想做的就是获取一个auth令牌,我的clientID和秘密硬编码并使用ARC /故事板.
我已经通过nxtbgthng尝试了OAuthConsumer,LROAuth2Client,GTM-OAuth2,OAuth2Client.任何教程,基本示例应用程序,或者你可以指出我会很棒.我能找到的唯一示例应用程序是旧的,而不是使用ARC或故事板.
我对ios更新鲜.我想将textField输入日期(mm/dd/yyyy)格式更改为(yyyy/mm/dd)并将结果日期存储在字符串中.你能不能帮我解决这个问题.
例如,如果我将在textField中输入日期,例如11/23/2013(mm/dd/yyyy).它必须更改为2013/11/23(yyyy/mm/dd)并将其存储在字符串中.提前致谢.
我正在尝试在 Elastic Beanstalk 上部署一个 php 应用程序。除了我打电话给 mongo 驱动程序外,一切都正常。
我尝试安装它遵循以下步骤(不成功):
sudo yum install php-devel
(用于 phpize)sudo pecl install mongo
按照说明尝试命令:sudo echo "extension=mongo.so" >> /etc/php.ini
失败。错误信息是:
-bash: /etc/php.ini: Permission denied
我会以正确的方式解决这个问题吗?
我想使用Storyboard中的segue(ShowADVDetail)将数据从TableViewController单元格传递给DetailViewContoller(UITableViewController).
我有一个NSMutableArray'故事'包含一个解析的RSS提要.
我正在使用以下prepareForSegue,它传递单元格的'title'值:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ShowADVDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];
NSString *theTitle = [[stories objectAtIndex: storyIndex] objectForKey: @"title"];
[[segue destinationViewController] setDetailItem:theTitle];
}
}
Run Code Online (Sandbox Code Playgroud)
通过以下行,我可以传递特定单元格的"标题"值.
NSString *theTitle = [[stories objectAtIndex: storyIndex] objectForKey: @"title"];
Run Code Online (Sandbox Code Playgroud)
我也可以像这样访问"描述"值和"链接"值:
NSString *theDescription = [[stories objectAtIndex: storyIndex] objectForKey: @"description"];
NSString *theLink = [[stories objectAtIndex: storyIndex] objectForKey: @"link"];
Run Code Online (Sandbox Code Playgroud)
但是如何在我的segue中传递所有3个值?
到目前为止,我的didSelectRowAtIndexPath看起来像这样:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:NO]
[self performSegueWithIdentifier:@"ShowADVDetail" sender:self];
} …
Run Code Online (Sandbox Code Playgroud) 我想知道我们当天有多少毫秒.我找不到一个方法来以毫秒为单位返回忽略日期的时间,所以我想我可以用timeIntervalSince 1970方法返回的值来计算它.
我这样做了:
NSLog(@"%f", [[NSDate date] timeIntervalSince1970]);
2013-05-21 16:29:09.453 TestApp[13951:c07] 1369171749.453490
Run Code Online (Sandbox Code Playgroud)
现在我的假设是,因为有86,400 seconds
一天我可以将这个值除以86400
并得到自1970年以来已经过了多少天.这样做给了我15846.8952483 days
.现在,如果我的假设成立,我现在已经89.52483%
过去了.因此,倍数24 hours by 86.52659%
会给我当前21.4859592 hour
或约的时间09:29 PM
.从你的身上可以看出NSLog
这距离实时大约5个小时,但我相信返回的时间间隔是GMT
因为这比我的时区提前了5个小时.
所以我想,哎呀,我会跟它一起滚动,看看会发生什么.
我通过这样做来切断小数位:
float timeSince1970 = [[NSDate date] timeIntervalSince1970]/86400.0;
timeSince1970 = timeSince1970 - (int)timeSince1970
Run Code Online (Sandbox Code Playgroud)
然后计算今天到目前为止的毫秒数:
int timeNow = timeSince1970 * 86400000;
NSLog(@"%i", timeNow);
2013-05-21 16:33:37.793 TestApp[14009:c07] 77625000
Run Code Online (Sandbox Code Playgroud)
然后我将毫秒(仍然看起来合适)转换为NSDate
:
NSString *timeString = [NSString stringWithFormat:@"%d", timeNow];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"A"]
NSDate …
Run Code Online (Sandbox Code Playgroud) ios ×12
objective-c ×12
iphone ×8
ipad ×3
uitableview ×2
cocoa-touch ×1
concurrency ×1
drilldown ×1
mongodb-php ×1
nsarray ×1
nsdate ×1
oauth ×1
php ×1
segue ×1
storyboard ×1
uikit ×1
uitextfield ×1
uiview ×1
xcode ×1