小编Hej*_*azi的帖子

使用drawInRect:withAttributes对齐文本:

在我的应用程序的iOS 5版本中,我有:

[self.text drawInRect: stringRect
             withFont: [UIFont fontWithName: @"Courier" size: kCellFontSize]
        lineBreakMode: NSLineBreakByTruncatingTail
            alignment: NSTextAlignmentRight];
Run Code Online (Sandbox Code Playgroud)

我正在升级iOS 7.上面的方法已被弃用.我现在正在使用drawInRect:withAttributes : . 的属性参数是一个NSDictionary对象.我可以得到drawInRect:withAttributes:使用这个来处理以前的字体参数:

      UIFont *font = [UIFont fontWithName: @"Courier" size: kCellFontSize];

      NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys: font, NSFontAttributeName,
                                  nil];

      [self.text drawInRect: stringRect
             withAttributes: dictionary];
Run Code Online (Sandbox Code Playgroud)

我将哪些键值对添加到字典中以获取NSLineBreakByTruncatingTailNSTextAlignmentRight

nsstring ios ios7

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

当UISearchDisplayController处于活动状态时,搜索栏上方的额外空间

我有一个带有a UITableViewController作为内容视图控制器的popover .表视图有一个UISearchBar标题视图.

现在,在iOS 6上,当UISearchDisplayController活跃时,一切看起来都很好.但是,在iOS 7上,搜索栏上方会有一个额外的空间.

iOS 7上搜索栏上方的额外空间

那么如何摆脱iOS 7搜索栏上方的这个额外空间呢?

uisearchbar uisearchdisplaycontroller uipopovercontroller ios ios7

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

显示 UIContextMenu 时从 UICollectionView 删除项目时出现奇怪的动画

我正在使用UIContextMenuInteraction以下内容显示上下文菜单UICollectionView

func collectiovnView(_ collectionView: UICollectionView, contextMenuConfigurationForItemAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
    return UIContextMenuConfiguration(identifier: nil, previewProvider: nil, actionProvider: { _ in
        let deleteAction = UIAction(title: "Delete", image: UIImage(systemName: "trash"), attributes: .destructive) { _ in
            self.deleteItem(at: indexPath)
        }
        return UIMenu(title: "Actions", children: [deleteAction])
    })
}

func deleteItem(at indexPath: IndexPath) {
    self.collectionView.performBatchUpdates({
        self.items.remove(at: indexPath.item)
        self.collectionView.deleteItems(at: [indexPath])
    })
}
Run Code Online (Sandbox Code Playgroud)

一切正常,但是当我点击“删除”项目时,会发生一个奇怪的动画,其中已删除的项目留在原地而其他项目正在移动,然后它立即消失。有时我什至在新项目出现之前的几分之一秒内看到一个空白区域或一个随机项目。

如果我collectionView.deleteItems()在上下文菜单未显示时调用,则删除动画按预期工作。

ios uicollectionview swift uicontextmenuinteraction

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

如何在iPhone sdk中以编程方式获取设备名称?

我得到设备Mac和IP地址.但是,不要获取设备名称.

任何想法如何获得更多的信息,如可能像设备的"网络实用程序"?

iphone mac-address ip-address device

7
推荐指数
2
解决办法
5263
查看次数

AVAudioSession无法在iOS 7上播放

在iOS 6上,我已经能够设置AVAudioSession来播放mp3文件.在iOS 7下使用Base设置运行时,这不再有效.任何想法为什么这不起作用?该应用程序永远不会崩溃...它只是不播放MP3.我已经验证了相同的代码和相同的URL适用于iOS 6应用程序.

错误是:

ERROR:     185: Error creating aggregate audio device: 'what'
WARNING:   219: The input device is 0x31; 'AppleHDAEngineInput:1B,0,1,0:1'
WARNING:   223: The output device is 0x28; 'AppleHDAEngineOutput:1B,0,1,1:0'
ERROR:     398: error 'what'
_itemFailedToPlayToEnd: {
    kind = 1;
    new = 2;
    old = 0;
}
Run Code Online (Sandbox Code Playgroud)

代码:

- (void)viewDidLoad {
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];

    NSError *setCategoryError = nil;
    [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];

    if (setCategoryError) { /* handle the error condition */ }

    NSError *activationError = nil;    
    [audioSession setActive:YES error:&activationError];

    if (activationError) …
Run Code Online (Sandbox Code Playgroud)

avaudioplayer ios

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

使用UISearchBar作为标题视图的UITableView会导致崩溃

我有一个带有a UITableViewController作为内容视图控制器的popover .表视图有一个UISearchBar标题视图.

在iOS 6上一切正常,但在iOS 7上,关闭popover时应用程序崩溃会出现此错误:

*** -[UIView release]: message sent to deallocated instance 0x118a9bf0
Run Code Online (Sandbox Code Playgroud)

调用堆栈

有关这次崩溃的可能原因的任何想法?

uitableview uisearchbar uipopovercontroller ios ios7

7
推荐指数
2
解决办法
1862
查看次数

在旋转期间更新 UIPageViewController 时不会调用完成块

我正在尝试UIPageViewController在轮换期间更新当前页面,如下所示:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    NSArray *controllers = @[someViewController];
    UIPageViewControllerNavigationDirection direction = UIPageViewControllerNavigationDirectionForward;

    [self.pageController setViewControllers:controllers direction:direction animated:YES completion:^(BOOL finished) {
        /// This completion block isn't called ever in this case.
    }];
}
Run Code Online (Sandbox Code Playgroud)

但是,出于某种原因,在这种情况下永远不会调用完成块,而当我从其他地方使用相同的参数调用相同的方法时,它会按预期调用。

任何人都可以确认这种奇怪的行为,如果这是一个错误UIPageViewController还是只是对我的误用?

更新

我发现,如果我改变参数animated,以NO如预期完成块将被称为!因此,在我看来,它是UIPageViewController.

objective-c screen-rotation ios uipageviewcontroller

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

如何将数据从Activity发送回AccessibilityService?

我有一个扩展AccessibilityService的类,并且在发生某些事件时会启动活动。

问题在于活动结束时,应将数据发送回“ AccessibilityService”。有谁知道如何做到这一点?

例:

public class MyAccessibilityService extends AccessibilityService {

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {

        if (event.getEventType()==AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED){
                Intent intent=new Intent(getApplicationContext(),DialogActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                startActivity(intent);
                // String resul=set result When Activity is closed
        }
    }
Run Code Online (Sandbox Code Playgroud)

提前致谢!

android android-intent accessibilityservice

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

从异步回调更新UI组件(dispatch_queue)

如何使用队列中的值更新GUI元素?如果我使用异步队列构造,textlable不会更新.这是我使用的代码示例:

- (IBAction)dbSizeButton:(id)sender {
    dispatch_queue_t getDbSize = dispatch_queue_create("getDbSize", NULL);
    dispatch_async(getDbSize, ^(void)
    {
        [_dbsizeLable setText:[dbmanager getDbSize]]; 
    });

   dispatch_release(getDbSize);
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

iphone queue multithreading objective-c ios

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