小编iOS*_*Dev的帖子

在设置内容插入后,iOS7上的UIWebView中的部分黑色背景

UIWebView在iOS7上遇到问题:

首先,我为web视图scrollview设置内容插入:

[webView.scrollView setContentInset:UIEdgeInsetsMake(40, 0, 0, 0)];
Run Code Online (Sandbox Code Playgroud)

然后,当Web视图加载空白页面时,Web视图底部有一个黑色矩形,其高度为40.

这是肯定的,因为内容插入,我只在iOS7上遇到了这个问题.我怎么解决这个问题?任何帮助将不胜感激!

iphone objective-c uiwebview ios

5
推荐指数
1
解决办法
3068
查看次数

NSMutableArray线程安全

在我的应用程序中,我正在访问并从多个线程更改可变数组.一开始它在我尝试访问一个对象时崩溃objectAtIndex,因为索引超出了界限(该索引处的对象已经从另一个线程中的数组中删除).我在互联网上搜索了如何解决这个问题,我决定尝试这个解决方案.我创建了一个带有NSMutableArray属性的类,请参阅以下代码:

@interface SynchronizedArray()
@property (retain, atomic) NSMutableArray *array;
@end

@implementation SynchronizedArray

- (id)init
{
    self = [super init];
    if (self)
    {
        _array = [[NSMutableArray alloc] init];
    }
    return self;
}

-(id)objectAtIndex:(NSUInteger)index
{
    @synchronized(_array)
    {
        return [_array objectAtIndex:index];
    }
}

-(void)removeObject:(id)object
{
    @synchronized(_array)
    {
        [_array removeObject:object];
    }
}

-(void)removeObjectAtIndex:(NSUInteger)index
{
    @synchronized(_array)
    {
        [_array removeObjectAtIndex:index];
    }
}

-(void)addObject:(id)object
{
    @synchronized(_array)
    {
        [_array addObject:object];
    }
}

- (NSUInteger)count
{
    @synchronized(_array)
    {
        return [_array count];
    }
}

-(void)removeAllObjects …
Run Code Online (Sandbox Code Playgroud)

objective-c thread-safety nsmutablearray ios

3
推荐指数
1
解决办法
3302
查看次数

使用CoreMotion框架在后台接收加速度计更新

我正在使用以下代码获取加速度计数据(使用CoreMotion框架):

CMMotionManager *motionManager = [[CMMotionManager alloc] init];    
motionManager.accelerometerUpdateInterval = 1.0 / 60.0;
[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue]
                                                 withHandler:^(CMAccelerometerData  *accelerometerData, NSError *error) {
                                                 NSLog(@"ACCELEROMETER DATA = %@",accelerometerData);
                                                 }];
Run Code Online (Sandbox Code Playgroud)

当应用程序处于前台模式时,我正在接收日志,但是当它进入后台时,我只在应用程序中的音乐正在播放时才会收到日志.我已将以下内容添加到app info plist文件中:

- Required background modes
   - App registers for location updates
   - App plays audio or streams audio/video using AirPlay
Run Code Online (Sandbox Code Playgroud)

问题是:当音乐没有播放时,如何在后台接收加速度计更新?

objective-c accelerometer ios core-motion

3
推荐指数
1
解决办法
9420
查看次数

UITableView insertRowsAtIndexPaths:WithRowAnimation没有冻结UI

我尝试理解UITableView当表格可见时,当我处理大量行时要使用的最佳实践.

这是我的行为:

我有一个UITableView和一个线程试图将数据插入此表.我认为[UITableView reloadData]对于性能方面做一个糟糕的解决方案,我知道UIKit操作是在主线程上进行的,因此当数据源更新完成时我试图发送一个NSNotification进行UITableView更新操作(beginUpdate - insertRowAtIndex - endUpdate)在主线程上,但这种技术冻结了用户界面.我必须处理1000多行.

有人已经解决了这个问题吗?是否可以使用GDC异步和同步?如果有,怎么样?提前致谢.

multithreading objective-c uitableview grand-central-dispatch ios

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