小编Pra*_*ore的帖子

如何在MKMapView上捕捉Tap手势

我正在尝试捕捉我的点击事件MKMapView,这样我就可以MKPinAnnotation在用户点击的点上删除.基本上我有一个覆盖的地图MKOverlayViews(显示建筑物的叠加层),我想通过删除MKPinAnnotaion并在标注中显示更多信息来为用户提供有关该叠加的更多信息.谢谢.

mkpinannotationview mkmapview ios4 mkoverlay uitapgesturerecognizer

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

RXSwift闭包中的'[弱自我]'

我是否需要[weak self]在RXSwift subscribeNext闭包内使用?

我有代码:

    searchController.searchBar.rx_text.throttle(0.2, scheduler: MainScheduler.instance).subscribeNext { searchText in
        self.viewModel.searchForLocation(searchText)
    }.addDisposableTo(DisposelBag.sharedDisposelBag.disposeBag)
Run Code Online (Sandbox Code Playgroud)

我是否需要修改它以便[weak self]在闭包开始时有一个捕获列表?像这样:

    searchController.searchBar.rx_text.throttle(0.2, scheduler: MainScheduler.instance).subscribeNext { [weak self] searchText in
        self?.viewModel.searchForLocation(searchText)
    }.addDisposableTo(DisposelBag.sharedDisposelBag.disposeBag)
Run Code Online (Sandbox Code Playgroud)

closures swift rx-swift

31
推荐指数
2
解决办法
9777
查看次数

将枚举转换为列表

假设我有以下枚举值

enum Language
    {
       CSharp= 0,
        Java = 1,
        VB = 2

    }
Run Code Online (Sandbox Code Playgroud)

我想将它们转换为值列表(即) { CSharp,Java,VB}.

如何将它们转换为值列表?

c# enums list type-conversion

30
推荐指数
3
解决办法
5万
查看次数

"T:Enum"的<T>类不起作用

可能重复:
创建将T限制为枚举的通用方法

我们有什么理由不能在C#中做到这一点吗?而且,如果可能的话,我该怎么做类似的事情!

我想要的是 :

public class<T> ATag where T : enum {
    [Some code ..]
}

public class<T> classBase where T : enum {
    public IDictionary<T, string> tags { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

所以,当它到了调用它的时候,我只能得到一个我的枚举值.

public class AClassUsingTag : classBase<PossibleTags> {
    public void AMethod(){
         this.tags.Add(PossibleTags.Tag1, "Hello World!");
         this.tags.Add(PossibleTags.Tag2, "Hello Android!");
    }
}

public enum PossibleTags {
    Tag1, Tag2, Tag3
}
Run Code Online (Sandbox Code Playgroud)

错误信息 : "Constraint cannot be special class 'System.Enum'"

谢谢!

c# enums templates class

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

使用平移手势平滑地更改动画约束

如何在iOS中使用平移手势平滑地修改约束变化?

我正在尝试开发一个屏幕,其中一个视图位于屏幕的底部.我已经为该视图添加了平移手势.在拖动该视图时,我想要更改该视图的顶部约束.平移手势仅允许在垂直和向下方向.我添加了一些拖动视图的限制.它工作但不顺利.如何使用平移手势平滑地修改约束变化?这是我的代码.

 - (void)handleGesture:(UIPanGestureRecognizer *)sender
{
    CGPoint velocity = [sender velocityInView:_locationContainer];

    [sender setTranslation:CGPointMake(0, 0) inView:self.view];

    if (fabs(velocity.y) > fabs(velocity.x)) {

        NSLog(@"velocity y %f ",velocity.y * 0.13);

        if(velocity.y < 0 && (self.locationDetailsTop.constant > minimumTop) )
        {
            NSLog(@"gesture moving Up");
            self.locationDetailsTop.constant = self.locationDetailsTop.constant - fabs(velocity.y * 0.1);
        }
        else if (self.locationDetailsTop.constant < firstTop)
        {
            NSLog(@"gesture moving Bottom");

            self.locationDetailsTop.constant = self.locationDetailsTop.constant + fabs(velocity.y * 0.1);
        }

        [self.view layoutIfNeeded];
        [UIView animateWithDuration:0.1 animations:^{
            [self.mapView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.locationContainer.frame.origin.y)];
        }];
    }
}
Run Code Online (Sandbox Code Playgroud)

这是示例图像,我的屏幕与此类似,但在我的屏幕上,有一个地图视图而不是日历视图

在此输入图像描述

objective-c ios uipangesturerecognizer autolayout nslayoutconstraint

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

使用.xib和支持类初始化UIView的正确方法

我有一些自定义创建的UIViews,它们使用.xib文件进行布局,并使用支持类进行额外设置.我使用alloc/init创建这些类,并在我的自定义init方法中调用loadNibNamed,但这样做会导致内存泄漏.有人指出alloc部分实际上创建了一个泄漏的自我对象,所以我调整了我的init方法:

- (id)init 
{
    [self autorelease];
    self = [[[[NSBundle mainBundle] loadNibNamed:@"AssignmentView" owner:nil options:nil] lastObject] retain];
    [self setupBranding];

    UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
    [self addGestureRecognizer:tapRecognizer];
    [tapRecognizer release];

    return self;
}
Run Code Online (Sandbox Code Playgroud)

但是,现在当我运行分析代码时,我得到这个警告"返回'自我',而它没有设置为'[(超级或自​​我)初始化...]"的结果.所以我的问题是使用支持类进行自定义UIViews的正确方法是什么?

既然有人问我上面的代码是这样的:

AssignmentView * assignmentView = [[AssignmentView alloc] init];
[self.view addSubview:assignmentView];
Run Code Online (Sandbox Code Playgroud)

initialization objective-c uiview ios

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

按其中一个键内的值对NSDictionaries数组进行排序

我从服务器提取XML提要,提要包含火车站及其纬度和经度位置.

我设法创建了一个NSArray完整的NSDictionary对象,每个对象对应一个工作站.

在字典中有一个纬度键和经度键.我还有一个CLLocation设备位置的对象.

我知道如何计算设备和每个电台之间的距离,但距离不是字典的一部分.我想按距离设备的顺序对数组进行排序.

我该怎么办?不知道从哪里开始,谷歌或我的书对我没有多大帮助!任何帮助深表感谢.

sorting objective-c nsdictionary nsarray ios

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

swift一元运算符'++'不能应用于'Int!'类型的操作数

在Basic Operators一节中,Swift编程语言指南指出++是一个有效的运算符:

"更复杂的例子包括逻辑AND运算符&&(如在输入DoorCode &&传递瑞典扫描中)和增量运算符++ i,它是将i的值增加1的快捷方式."摘录自:Apple Inc."Swift编程语言."iBooks. https://itun.es/gb/jEUH0.l

但是,在游乐场尝试时:

class Levels {
    var data = [
        [
            "nodesNum" : 20,
            "lastLevel" : false
        ],
        [
            "nodesNum" : 16,
            "lastLevel" : false
        ],
        [
            "nodesNum" : 13,
            "lastLevel" : false
        ],
        [
            "nodesNum" : 10,
            "lastLevel" : false
        ],
        [
            "nodesNum" : 8,
            "lastLevel" : true
        ]
    ]
}

var levels: Levels!
var availableNodesNum: Int!
var currentLevelData: NSDictionary!
var levelNum:Int = 2

levels = Levels()

currentLevelData = levels.data[levelNum]
availableNodesNum = Int(currentLevelData["nodesNum"]! as! …
Run Code Online (Sandbox Code Playgroud)

operators unary-operator swift xcode6

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

iOS文本域光标位置错误

在切换iOS textField isSecureTenxtEntry时.

在此输入图像描述

我的代码是这样的

textField?.isSecureTextEntry = !textField.isSecureTextEntry
Run Code Online (Sandbox Code Playgroud)

设备是iPhone 6.

iphone uitextfield ios swift

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

动画集合视图单元格

如何为集合视图单元设置动画,例如iOS中左右门的关闭或滑动。像这样:在此处输入图片说明

uikit uiviewanimation uicollectionview uicollectionviewcell swift

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