我有两个自定义控件UIView,一个是现在流行的滑动菜单(当你NavBar在右边的视图幻灯片上滑动手指)而另一个是在UITableViewCell- 它是TableViewCell来自名为DMSlidingTableViewCell的控件的自定义(如Twitter应用程序 - 当您在左侧滑动单元格时,它会显示一些按钮等.)
它们工作正常,但是当我尝试在整个UITableView中添加一个Gesture识别器,从而使整个视图成为一个区域UIGestureRecognizer(所以当我移动它时我可以将视图移动到右侧),手势识别器会以某种方式发生冲突.
这可能是什么原因?
我UIImagePickerController在 iOS 6 应用程序中呈现模态时遇到了一个奇怪的问题。该XCode给我这个错误:
Warning: Attempt to present <UIImagePickerController: 0x1e025040> on <UINavigationController: 0x1d51ce00> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)
我有以下窗口层次结构AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window = window;
firstViewController = [[SGNewMailViewController alloc] init];
navController = [[UINavigationController alloc] initWithRootViewController:firstViewController];
self.window.rootViewController = firstViewController;
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
在我的SGNewMailViewController我提出了一个 new UIView,一个SGFoldingAttachmentView类的成员,其中包含以下代码:
- (void)choosePhotoPressed {
SGNewMailViewController *mailVC = [((SGAppDelegate *)[UIApplication sharedApplication].delegate).firstViewController.navigationController.viewControllers …Run Code Online (Sandbox Code Playgroud) 我制作了8张图像,每个角落有4张图像,每张边有4张图像UIImageView.现在,我在地球上如何使它们"绕过",view这样它们形成了一个漂亮,可伸缩的边框,就像这样(白线是我试图实现的边界):

关于如何view基于8个预设图像实现边框的任何想法?
编辑:我不想画边框,我想用我的8张图片!
我想实现我的应用程序的以下行为:我有一个UIScrollView对我与定制的视图contentSize,我想提出一个UIButton在其左下角呆在那里,当我滚动我想按钮留它的确切位置是视图,滚动视图的内容同时滚动.
最好的方法是什么?谢谢!
我正在使用此代码向下滚动UIScrollView,因为我UIView从底部添加了一个新的,我想向下滚动到它.我是这样做的:
CGPoint newOffset = CGPointMake(mainScrollView.contentOffset.x, mainScrollView.contentOffset.y + floorf(bottomAttachmentView.frame.size.height / bottomAttachmentView.multFactor));
[mainScrollView setContentOffset:newOffset animated:YES];
Run Code Online (Sandbox Code Playgroud)
我基本上是我的新元素的高度增加了y的UIScrollView的contentOffset,但有时它滚动了滚动型contentSize,低,有可能滚动.之所以会发生这种情况,是因为我contentSize在调用上面的方法之前修改了它,并且Scroll View的高度会缩小.
你怎么称呼它setContentOffset所以它不会让我的scrollView滚动它自己的contentSize?谢谢!
我有一个NSMutableArray的UIViews,我把在UIScrollView其负责将它们按顺序.现在我有这个代码用于互换两个UIViews位置:
UIView *viewToBeChanged = [views objectAtIndex:self.page];
UIView *previousView = [views objectAtIndex:previousPage];
[views removeObjectAtIndex:self.page];
[views removeObjectAtIndex:previousPage];
[views insertObject:viewToBeChanged atIndex:previousPage];
[views insertObject:previousView atIndex:self.page];
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来改变NSMutableArray另一个对象的位置?谢谢!
我需要我的应用程序记住哪个是最后UIViewController打开的,所以当应用程序加载内存不足时,我替换了一个rootViewController属性AppDelegate保存在NSUserDefaults:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window = window;
frontViewController = [[SGLoginScreenViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:frontViewController];
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是在ViewDidLoad每个方法中加入一些代码ViewController并记住它的名称NSUserDefaults以便以后使用它didFinishLaunchingWithOptions,如下所示:
[[NSUserDefaults standardUserDefaults] setObject:self forKey:@"currentViewController"];
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)
但是,问题是XCode给了我这个警告:
*** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '<SGMainScreenFirstTimeViewController: 0x8e1fea0>' of class 'SGMainScreenFirstTimeViewController'. Note that dictionaries and arrays …Run Code Online (Sandbox Code Playgroud) 我有一个NSArray看起来像这样:
contactNamesArray = [[NSMutableArray alloc] initWithObjects:@"John Galt", @"Michael Wales", @"James Joyce", @"Shakespeare", nil];
Run Code Online (Sandbox Code Playgroud)
从它,我想做一个NSArray将具有所有相同的值,但这将是这样的:
newContactNamesArray = [[NSMutableArray alloc] initWithObjects:@"john galt", @"michael wales", @"james joyce", @"shakespeare", nil];
Run Code Online (Sandbox Code Playgroud)
我想这样做,因为我想在第二个数组中进行搜索,我想用普通字母替换其中的每个大写字母.
你如何在Objective-C中做这样的事情?提前致谢!
我想将每个NSData对象保存到iOS中的临时目录,我希望每个新对象都覆盖旧对象.
对象将具有不同的格式和不同的大小.
我知道你是如何得到这条路的,NSTemporaryDirectory但是NSData每次添加一个新文件时,你怎么能在那里覆盖旧文件呢?
我有两个音轨,我就像这样相互结合:
AVMutableComposition *composition = [[AVMutableComposition alloc] init];
AVMutableCompositionTrack *compositionAudioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionAudioTrack setPreferredVolume:1.0];
AVAsset *avAsset = [AVURLAsset URLAssetWithURL:originalContentURL options:nil];
AVAssetTrack *clipAudioTrack = [[avAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, avAsset.duration) ofTrack:clipAudioTrack atTime:kCMTimeZero error:nil];
AVMutableCompositionTrack *compositionAudioTrack1 = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionAudioTrack1 setPreferredVolume:0.01];
NSString *soundOne1 =[[NSBundle mainBundle]pathForResource:@"jingle1" ofType:@"m4a"];
NSURL *url1 = [NSURL fileURLWithPath:soundOne1];
AVAsset *avAsset1 = [AVURLAsset URLAssetWithURL:url1 options:nil];
AVAssetTrack *clipAudioTrack1 = [[avAsset1 tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];
[compositionAudioTrack1 insertTimeRange:CMTimeRangeMake(kCMTimeZero, avAsset.duration) ofTrack:clipAudioTrack1 atTime:kCMTimeZero error:nil];
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,第一个AVAsset是第二个轨道的基本长度,这意味着如果我有一个很长的第二个轨道,它将被切割,这正是我想要的方式.
但是,我需要能够循环第二个轨道,这样如果第一个轨道太长,第二个轨道就会继续运行.我后来不得不将生成的曲目保存在光盘上,这也是一个重要因素.
经过一项研究,我发现在iOS中实际循环轨道没有方便的方法.其中一种方法是AVMutableComposition反复插入第二首曲目,但这对我来说听起来很奇怪.基于该主题的任何想法都将非常有用.
ios ×10
cocoa-touch ×9
objective-c ×9
iphone ×6
uiscrollview ×2
avasset ×1
core-audio ×1
nsarray ×1
nsdata ×1
uibutton ×1
uiimageview ×1
uikit ×1
uitableview ×1
uiview ×1