我试图快速反转现有UIView的颜色(变成负面,如在摄影底片中).或者采取颜色并调低饱和度.我认为比操作位图更容易采取另一个全白(或阴影)的UIView,并使用blendmodes来实现我的目标.
我没有看到如何指导UIView如何在另一个之上绘制的方法.即使我是UIView的子类,我也没有看到使用混合更简单的方法.看起来我必须子类化具有drawrect的UIImageView:withBlendMode.
有没有人以更简单的方式做到这一点?我希望我可以在UIView或UIImageView上设置一个blendmode属性而不必子类...
基本上,你如何快速反转视图,使黑色为白色,白色为黑色?
我-writeImageToSavedPhotosAlbum用来将图像发送到照片库.我遇到的问题是,尽管指定了方向,但图像最终会出现错误的方向.
事实上,似乎那些面向AVCaptureVideoOrientationPortrait最终看起来像AVCaptureVideoOrientationPortraitUpsideDown,并AVCaptureVideoOrientationLandscapeLeft最终看起来像AVCaptureVideoOrientationLandscapeRight,反之亦然.
这有什么原因吗?以下是一些更多细节:
我没有ViewController为我的视图进行自动方向更改.
所有图像显示[image imageOrientation]相等AVCaptureVideoOrientationPortrait,但我会跟踪实际方向并将其传递给-writeImageToSavedPhotosAlbum独立.
我正在使用: -writeImageToSavedPhotosAlbum:orientation:completionBlock:
如果有人能对此有所了解,我会很感激.
更新:
尽管我在文档中读到了
如果要保存UIImage对象,可以使用UIImage方法CGImage获取CGImageRef,并将图像的imageOrientation转换为ALAssetOrientation.
我继续改变了传递方向:
switch (lastOrientation) {
case UIDeviceOrientationPortrait:
default:
alOrientation = ALAssetOrientationUp;
break;
case UIDeviceOrientationPortraitUpsideDown:
alOrientation = ALAssetOrientationDown;
break;
case UIDeviceOrientationLandscapeLeft:
alOrientation = ALAssetOrientationLeft;
break;
case UIDeviceOrientationLandscapeRight:
alOrientation = ALAssetOrientationRight;
break;
}
[library writeImageToSavedPhotosAlbum:[image CGImage]
orientation:(ALAssetOrientation) alOrientation// [image imageOrientation]
completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"completion block");
}];
Run Code Online (Sandbox Code Playgroud)
现在,所有图像都以其左边缘向下定向,就像它们是风景右侧一样.我仍然没有正确,但至少我让他们统一导向.
另一个更新:
这有效.为什么,我不知道:
switch (lockedOrientation) {
case …Run Code Online (Sandbox Code Playgroud) 我试图将图片发布到id = 226338660793052的Facebook页面,但它一直在/ me/photos中结束.我究竟做错了什么?
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
imageToSend, @"source",
facebookMessageTextView.text, @"message",
nil];
[facebook requestWithGraphPath:@"/226338660793052/photos" andParams:params andHttpMethod:@"POST" andDelegate:self];
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误消息.除了照片最终出现在我自己的专辑,我/照片,而不是226338660793052 /照片的专辑中,我什么都没得到.
但是,当我只是向该页面发布消息时,我确实在页面的时间轴上得到了一个成功的帖子:
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"http://www.bitsonthego.com", @"link",
@"my profile", @"name",
facebookMessageTextView.text, @"message",
nil];
[facebook requestWithGraphPath:@"/226338660793052/feed" andParams:params andHttpMethod:@"POST" andDelegate:self];
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?我知道这一定是可能的,因为我可以使用浏览器将图片上传到所需的页面,作为一个随机的非管理员用户.我似乎无法从图API中做到这一点.
更新:
我已经解决了部分问题.您必须使用目标页面的access_token.这就是你如何得到它:
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"access_token", @"fields",
nil];
FBRequest *request = [facebook requestWithGraphPath:@"226338660793052" andParams:params andDelegate:self];
Run Code Online (Sandbox Code Playgroud)
获得结果后,将其添加到上面的事务中:
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
image, @"source",
[result objectForKey:@"access_token"], @"access_token",
facebookMessageTextView.text, @"message",
nil];
FBRequest *request = [facebook requestWithGraphPath:[[result objectForKey:@"id"] stringByAppendingString:@"/photos"] andParams:params …Run Code Online (Sandbox Code Playgroud) 我想持续分析MIC音频(不仅仅是一个片段或预先录制的样本),还要显示频率图并滤除音频的某些方面.iPhone足够强大吗?考虑到谷歌和iPhone的语音识别,Shazaam和其他音乐识别应用以及吉他调谐器应用,我怀疑答案是肯定的.但是,我不知道我有什么限制要处理.
有人在这个地方玩吗?
我在UITableView中的UITableView单元格中有一个UIButton.结果是一个包含按钮的列表.当按下UIButton时,它会调用一个touchUpInside方法,一切都很棒.我遇到的问题是我想在按下按钮时从按钮的位置(框架)缩小新视图.如果我只是得到了UIButton的界限
origButton.frame
Run Code Online (Sandbox Code Playgroud)
它位于UITableCell的坐标中,类似于3,50,40,25.这对于列表中的所有按钮都是相同的,因此无论按下列表中的哪个按钮,我都会得到这些坐标.现在,如果我真的抓住了我的视图坐标
self.frame
Run Code Online (Sandbox Code Playgroud)
当调用touchUpInside方法时,我得到更多可用的东西.然后我得到了我的细胞的坐标.大!!所以我可以从UIButton缩小新视图.大!!
但问题出在这里:如果向上滚动列表,点击按钮,视图不会从按钮缩小,而是从屏幕下方的位置缩小.问题是,我所拥有的坐标是针对单元格,在它向上滚动之前.事实上,所有单元格的所有坐标都反映了它们在表格中的实际位置,只有第一个可见集合的坐标可用.滚动没有改变这些坐标.
我想也许我可以使用超级视图的坐标,但那些没有帮助.
任何人都知道如何获得表中列出的按钮(或视图或任何其他项)的准确坐标,或者不可能?
以下是我计算新视图中心点的方法:
floatingView.center = CGPointMake(origButton.frame.origin.x +
origButton.frame.size.width / 2,
self.frame.origin.y + self.superview.frame.origin.y);
Run Code Online (Sandbox Code Playgroud)
谢谢!
在马拉松编码会话之后,我添加了太多代码而没有跟踪所有内容,我现在有一个应用程序,可能有一些iOS 5.0和5.1特定的枚举,调用和框架,但是,我希望我的应用程序支持iOS回到4.3 .
我希望有一种简单的方法可以将Xcode设置为编译,就好像它正在编译iOS 4.3一样,这样我就会得到所有需要调整的违规代码的错误,和/或者可选择编码的iOS版.
我以为我会通过使用编译器选项得到它:
-D__IPHONE_OS_VERSION_MAX_ALLOWED=__IPHONE_4_3
Run Code Online (Sandbox Code Playgroud)
但最终会在系统头文件中产生错误,而不是我的代码.
鉴于大多数枚举和框架都将其可用性包含在头文件中,我不得不认为有一种简单的方法可以满足我的需求.
有没有人设法做这样的事情,而不是使用旧的SDK下载旧的Xcodes?在那里,我可能会遇到在Lion下无法正常运行的Xcodes问题(这就是我正在运行的).
更新:好像我无法在Lion上安装Xcode 3.2.6.我现在必须找到Snow Leopard Mac,除非我找到使用编译器选项或强制Xcode使用旧SDK的方法......
以下是@ mattjgalloway的答案为我做的一个示例:
Lumin App Group
/Users/mz/Dev/Working/Lumin/Lumin/MyUIScreen.m
/Users/mz/Dev/Working/Lumin/Lumin/LuminViewController+Share.m
/Users/mz/Dev/Working/Lumin/Lumin/LuminViewController.m
非常好.
我将以下内容放在项目的.pch文件中,并计划对所有项目执行此操作:
#if DEBUG
#define __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED __IPHONE_OS_VERSION_MIN_REQUIRED
#import "MJGAvailability.h"
#endif
Run Code Online (Sandbox Code Playgroud)
对于任何项目,我现在都会根据我目标最早的iOS自动查看SDK问题.虽然仍然可能有SDK更改,但我至少知道大多数旧版iOS发布的框架添加内容.
我正在尝试振动/摇动一个UI元素,即一个控件,就像它被击中一样,并且正在产生共鸣.我可以使用Core Animation将其垂直,水平或两者抖动一个像素:
CABasicAnimation* rotationXAnimation;
rotationXAnimation = [CABasicAnimation animationWithKeyPath:@"position.y"];
rotationXAnimation.fromValue = [NSNumber numberWithFloat: ((UIControl *) sender).center.y-1.0 ];
rotationXAnimation.toValue = [NSNumber numberWithFloat: ((UIControl *) sender).center.y+1.0 ];
rotationXAnimation.duration = 0.2;
rotationXAnimation.cumulative = NO;
rotationXAnimation.repeatCount = 10.0;
rotationXAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[((UIControl *) sender).layer addAnimation:rotationXAnimation forKey:@"upDownAnimation"];
Run Code Online (Sandbox Code Playgroud)
或者我可以围绕z轴来回旋转一个小弧(-M_PI*0.02和M_PI*0.02):
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.fromValue = [NSNumber numberWithFloat: -M_PI * 0.02 ];
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 0.02 ];
rotationAnimation.duration = 0.2;
rotationAnimation.cumulative = NO;
rotationAnimation.repeatCount = 10.0;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[((UIControl *) …Run Code Online (Sandbox Code Playgroud) http://developer.android.com/guide/practices/screens_support.html说明:
术语和概念
屏幕尺寸实际物理尺寸,以屏幕对角线测量.为简单起见,Android将所有实际屏幕尺寸分为四种通用尺寸:小尺寸,普通尺寸,大尺寸和超大尺寸.
如何以编程方式获取设备屏幕的通用大小?我正在寻找的方法或属性将返回以下之一:small,normal,large和extra large.(或可以映射到那些的const/enums)
谢谢.
-mz
Snow Leopard似乎没有SDK 2.xx.还是我弄错了?
顺便说一句,我很喜欢内置的Clang !! 感谢Xcode团队!
我有一个UITableViewController,其中包含具有UITextField的单元格的表.当键盘出现在这些文本字段中添加或编辑文本时,这些字段必须向上移动,以免被键盘遮挡.这应该由UITableViewController自动处理:
来自Apple:
注意:表视图控制器支持对表视图行进行内联编辑; 例如,如果行在编辑模式下嵌入了文本字段,则会将正在编辑的行滚动到显示的虚拟键盘上方.
可能问题是我使用的是SplitViewController,右侧是UITableViewController(较大的分割),左侧是另一个视图.
我错过了什么?是否只有某些情况下UITableViewController将处理此而不是其他情况?
iphone ×6
ios ×4
uitableview ×2
android ×1
audio ×1
avfoundation ×1
facebook ×1
fft ×1
uiimageview ×1
uikeyboard ×1
uitextfield ×1
uiview ×1
xcode ×1