小编Kyl*_*man的帖子

用avcapturesession切换相机

在这里使用本教程:http://www.musicalgeometry.com/? p = 1297我使用AVCaptureSession创建了自定义叠加和图像捕获.

我试图让用户在前后摄像头之间切换.这是我在CaptureSessionManager中切换摄像头的代码:

- (void)addVideoInputFrontCamera:(BOOL)front {
    NSArray *devices = [AVCaptureDevice devices];
    AVCaptureDevice *frontCamera;
    AVCaptureDevice *backCamera;

    for (AVCaptureDevice *device in devices) {

        //NSLog(@"Device name: %@", [device localizedName]);

        if ([device hasMediaType:AVMediaTypeVideo]) {

            if ([device position] == AVCaptureDevicePositionBack) {
                //NSLog(@"Device position : back");
                backCamera = device;
            }
            else {
                //NSLog(@"Device position : front");
                frontCamera = device;
            }
        }
    }

    NSError *error = nil;

    if (front) {
        AVCaptureDeviceInput *frontFacingCameraDeviceInput = [AVCaptureDeviceInput deviceInputWithDevice:frontCamera error:&error];
        if (!error) {
            if ([[self captureSession] …
Run Code Online (Sandbox Code Playgroud)

ios avcapturesession front-camera

54
推荐指数
4
解决办法
3万
查看次数

iOS将大数字转换为较小的格式

如何将超过3位的所有数字转换为4位或更少的数字?

这正是我的意思:

10345 = 10.3k
10012 = 10k
123546 = 123.5k
4384324 = 4.3m
Run Code Online (Sandbox Code Playgroud)

舍入并不完全重要,但还有一个额外的好处.

我已经研究过NSNumberFormatter但是没有找到合适的解决方案,而且我还没有在SO上找到合适的解决方案.非常感谢任何帮助,谢谢!

formatting data-conversion nsnumber human-readable ios

52
推荐指数
9
解决办法
2万
查看次数

如何使用多个URL处理UIApplication handleOpenURL

我有一个将使用Facebook和Instagram API的应用程序,这两个都要求我使用这个委托方法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

    return [PFFacebookUtils handleOpenURL:url];

}
Run Code Online (Sandbox Code Playgroud)

这是由instagram提供的代码:

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

    return [self.instagram handleOpenURL:url];

}
Run Code Online (Sandbox Code Playgroud)

如您所见,这是一个问题,因为我只能返回一个URL处理程序,但我需要能够决定哪一个.

在我的应用代表中,我已经注释掉上面的Instagram选项,只留下了Facebook.正如预期的那样,Facebook可以正常工作,但是当我在Instagram上点击授权时,我收到了这个错误:

Instagram网址错误

显然,Facebook正试图处理来自Instagram的返回URL,因此它会出错.

检查URL是否包含我正在尝试的每项服务的应用程序ID是否合理?因此,如果URL包含instagram ID,则返回instagram处理程序,如果它包含Facebook ID,则返回Facebook处理程序.

任何帮助都会很棒,谢谢!

api openurl ios instagram

22
推荐指数
1
解决办法
1万
查看次数

使用iOS7自定义UIBarButtonItem对齐

所以我遇到了许多其他人在使用UIButton作为自定义视图创建UIBarButtonItem时遇到的相同问题.

基本上,按钮向左或向右约10像素到远.当我使用没有自定义视图的常规BarButtonItem时,这不会发生.

这篇文章提供了部分解决方案: UIBarButton With Custom View

这是我通过子类化UIButton创建的代码(如另一篇文章中所述)

    - (UIEdgeInsets)alignmentRectInsets {
    UIEdgeInsets insets;
    if ([self isLeftButton]) {
        insets = UIEdgeInsetsMake(0, 9.0f, 0, 0);
    }
    else { // IF ITS A RIGHT BUTTON
        insets = UIEdgeInsetsMake(0, 0, 0, 9.0f);
    }
    return insets;
}


- (BOOL)isLeftButton {
    return self.frame.origin.x < (self.superview.frame.size.width / 2);
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但当我从导航控制器弹出一个视图控制器回到这个主视图时,按钮仍然错误地定位了大约.3秒,然后它捕捉到正确的插图.

这是一个巨大的眼睛,我不知道如何阻止它像这样攫取.有什么想法吗?谢谢!

uibutton uinavigationcontroller uibarbuttonitem ios7

18
推荐指数
1
解决办法
1万
查看次数

Cocoapods安装错误

这是我的Podfile:

platform :ios, ‘7.0’

pod 'ECSlidingViewController', '~> 2.0.0'
Run Code Online (Sandbox Code Playgroud)

当我在终端中输入pod install时,这是我得到的错误:

[!] Invalid `Podfile` file: /Users/Kyle/Desktop/Testing/Podfile:1: no .<digit> floating literal anymore; put 0 before dot
platform :ios, ‘7.0’
                    ^
/Users/Kyle/Desktop/Testing/Podfile:1: syntax error, unexpected tINTEGER, expecting '('
platform :ios, ‘7.0’
                     ^. Updating CocoaPods might fix the issue.
Run Code Online (Sandbox Code Playgroud)

Podfile中的所有内容都是正确的.我试过"而不是"没有效果.我也删除了小数(点)并移动它.我错过了什么?

在浏览网页后,一位用户建议我的Ruby安装可能出错,但我该如何检查呢?我还验证了我安装了所有Ruby更新:

sudo gem update --system
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒,谢谢!

cocoapods ios7

13
推荐指数
2
解决办法
6012
查看次数

Swift:沿着bezier路径的渐变(使用CALayers)

我有一个相对直接的实现使用CALayer对象设置的进度视图.进度视图本身是UIView的子视图.

以下是设置进度环的代码:

        self.progressRingLayer = CAShapeLayer()

        let innerRect = CGRectInset(bounds, CGFloat(self.lineWidth) / 2, CGFloat(self.lineWidth) / 2)
        let innerPath = UIBezierPath(ovalInRect: innerRect)

        self.progressRingLayer.path = innerPath.CGPath
        self.progressRingLayer.fillColor = UIColor.clearColor().CGColor
        self.progressRingLayer.strokeColor = kProgressColor.CGColor
        self.progressRingLayer.anchorPoint = CGPointMake(0.5, 0.5)
        self.progressRingLayer.transform = CATransform3DRotate(self.progressRingLayer.transform, (CGFloat(M_PI))*1, 0, 0, 1)
        self.progressRingLayer.lineCap = kCALineCapRound
        self.progressRingLayer.lineWidth = CGFloat(self.lineWidth)

        self.layer.addSublayer(self.progressRingLayer)
Run Code Online (Sandbox Code Playgroud)

我现在要做的是向跟随(或弯曲)路径的progressRingLayer添加渐变.我成功地为填充添加了线性渐变,但不仅仅是路径.

这是我想要的效果的一个例子:

在此输入图像描述

到目前为止,我发现的所有内容都需要一些额外的步骤,其中CoreGraphics和CGContext不太适合我的实现.任何帮助都会很棒,谢谢!

gradient calayer ios swift

8
推荐指数
1
解决办法
5172
查看次数

iOS Twitter反向OAuth

我已经在互联网上倾倒了几天,试图弄清楚如何实现这一点.

我需要从twitter请求访问令牌和秘密,以便将其传递给将为我的应用程序处理用户推文的服务器.

我一直关注此链接https://dev.twitter.com/docs/ios/using-reverse-auth

问题是第1步.他们没有给你一个步骤1的例子.

这是我的代码:

NSURL *url = [NSURL URLWithString:TW_OAUTH_URL_REQUEST_TOKEN];
NSDictionary *parameters = @{TW_X_AUTH_MODE_KEY:TW_X_AUTH_MODE_REVERSE_AUTH};

SLRequest *getTwitterAuth = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:url parameters:parameters];


//  Assume that we stored the result of Step 1 into a var 'resultOfStep1'

NSString *S = resultOfStep1;
NSDictionary *step2Params = [[NSMutableDictionary alloc] init];
[step2Params setValue:@"kfLxMJsk7fqIuy8URhleFg" forKey:@"x_reverse_auth_target"];
[step2Params setValue:S forKey:@"x_reverse_auth_parameters"];

NSURL *url2 = [NSURL URLWithString:@"https://api.twitter.com/oauth/access_token"];
SLRequest *stepTwoRequest =
[SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodPOST URL:url2 parameters:step2Params];

//  You *MUST* keep the ACAccountStore alive for as long as you need an …
Run Code Online (Sandbox Code Playgroud)

twitter ios slrequest

7
推荐指数
1
解决办法
3656
查看次数

检测UITableView的底部"反弹"

我有一个表视图,当用户向下滚动UITableView(向上推拇指)时执行动画,当用户在UITableView上向上滚动(按下拇指向下)时,执行不同的动画.

问题是当用户到达UITableView的底部并且它反弹时,表会记录向上然后向下移动,从而在不应该执行时执行动画.

滚动到顶部时会发生同样的确切行为; 但是,我能够像这样检测它:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {

    self.lastContentOffset = scrollView.contentOffset;

}


-(void) scrollViewDidScroll:(UIScrollView *)scrollView {

    // Check if we are at the top of the table
    // This will stop animation when tableview bounces

    if(self.tableView.contentOffset.y < 0){
        // Dont animate, top of tableview bounce


    } else {

        CGPoint currentOffset = scrollView.contentOffset;

        if (currentOffset.y > self.lastContentOffset.y) {

            // Downward animation
            [self animate:@"Down"];

        } else {

            // Upward
            [self animate:@"Up"];

        }

        self.lastContentOffset = currentOffset;

    }

}
Run Code Online (Sandbox Code Playgroud)

这很完美,但对于我的生活,我无法弄清楚是否有条件来检测底部.我确信这很简单,我只是想不通.

uitableview uiscrollviewdelegate ios

7
推荐指数
1
解决办法
1万
查看次数

在UITableView滚动时播放滴答声(有点像UIPickerView)

我正在寻找一种方法来实现每次单元格通过屏幕上的特定点(中心)时播放的刻度噪声.

我一直在网上倾泻但是无法弄清楚从哪里开始?任何方向都会很棒(不是找人为我解决,只是一些见解或建议)

谢谢!

更新:

这是我使用您的方法实现的代码,但它无法正常工作.似乎永远不会调用"Tick"nslog,这意味着参数中的某些内容不正确.我的tableview单元格高100像素.有什么建议?

- (void) scrollViewDidScroll:(UIScrollView *)scrollView {



}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    self.myTimer = [NSTimer scheduledTimerWithTimeInterval:1/30.0 target:self selector:@selector(checkTableViewScrollPosition) userInfo:nil repeats:YES];
}


- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
    if (self.myTimer)
        [self.myTimer invalidate];
    self.myTimer = nil;
}


int currentContentOffset = 0;
int tableviewCellHeight = 100;
int thresholdValue = 50;


- (void) checkTableViewScrollPosition {


    int contentOffsetValue = _contentTableView.contentOffset.y;

     NSLog(@"%d", contentOffsetValue);


    if ((contentOffsetValue + tableviewCellHeight / 2) % tableviewCellHeight <= thresholdValue && currentContentOffset != contentOffsetValue ) {
        NSLog(@"Tick!");
        NSLog(@"%d", contentOffsetValue);


        currentContentOffset = _contentTableView.contentOffset.y; …
Run Code Online (Sandbox Code Playgroud)

audio uitableview ios

6
推荐指数
1
解决办法
1612
查看次数

使用NSPredicate的Swift过滤器数组

我有一个用Swift编写的应用程序,它从他们的地址簿中提取用户联系人.

我想过滤掉只包含公司名称的联系人(这样你就可以得到"假定的"真人联系而不是商家)

以下是我在app的Objective-C版本中实现的方法:

NSArray *allContacts = (__bridge_transfer NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);

NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id person, NSDictionary *bindings) {
    NSString *firstName = CFBridgingRelease(ABRecordCopyValue((__bridge ABRecordRef)person, kABPersonFirstNameProperty));
    NSString *lastName  = CFBridgingRelease(ABRecordCopyValue((__bridge ABRecordRef)person, kABPersonLastNameProperty));

    return (firstName || lastName);
}];

NSArray *peopleNotCompanies = [allContacts filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

这很好用,所以这是我尝试在Swift中做到这一点:

var contactList: NSArray = ABAddressBookCopyArrayOfAllPeople(addressBook).takeRetainedValue()

var predicate: NSPredicate = NSPredicate { (AnyObject person, NSDictionary bindings) -> Bool in
    var firstName: String = ABRecordCopyValue(person as ABRecordRef, kABPersonFirstNameProperty).takeRetainedValue() as String
    var lastName: String = ABRecordCopyValue(person as ABRecordRef, kABPersonLastNameProperty).takeRetainedValue() as String

    return …
Run Code Online (Sandbox Code Playgroud)

abaddressbook ios swift

6
推荐指数
2
解决办法
2万
查看次数