小编mam*_*mcx的帖子

如何将TabBar + Navigation与XCode结合使用

我正在试图组合一个TabBar +导航应用程序.

我有5个标签栏,4个列出了东西并深入查看详细信息视图.

我尝试按照本教程:

http://www.iphonedevforums.com/forum/iphone-sdk-development/124-view-controller-problem.html

但总是得到一个空白的观点.

这就是我所做的,有一个干净的项目:

  • 我从一个TabBar模板应用程序开始.
  • 我放了5个标签栏按钮.
  • 我创建一个控制器,如:

    @interface FirstViewController:UINavigationController {

    }

  • 我将主window.xib放在树模式下并将所选的第一个视图更改为 FirstViewController
  • 我在"界面"构建器中选择了TabBar控制器,转到TabBar属性并将类更改为导航控制器.
  • 选择第一个视图并将笔尖名称设为"SecondView"

作为回应,我得到一个空白屏幕.

我必须补充一点,我想从细节视图导航,而不是从主窗口导航.

即在主窗口中,标签栏1是人员列表.我选择一个人然后想导航到细节窗口.

iphone objective-c

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

如何在表之间复制单元格作为脉冲应用程序

我需要在2个表视图之间复制单元格.

我有一个或多或少的工作解决方案.但是,它并不顺利,我很乐意做类似于脉冲应用程序重新排序的选项......

脉冲工作方式特别之处在于重新排序动画与正常的单元重新排序相同,但单元格仍可在表格之间移动.

这就是我现在拥有的:

- (BoardColumnView *) addColumn:(NSString *)title type:(ColumnType)type{
    BoardColumnView *col = [BoardColumnView createColumn:title];

    [self.columns addObject:col];

    // Add a pinch gesture recognizer to the table view.
    UILongPressGestureRecognizer* draggingRecognizer = [[UILongPressGestureRecognizer alloc] 
                                                    initWithTarget:self 
                                                    action:@selector(moveActionGestureRecognizerStateChanged:)
                                                   ];

    draggingRecognizer.minimumPressDuration = 0.5;
    draggingRecognizer.delegate = self;

    [col.tableView addGestureRecognizer:draggingRecognizer];
    [draggingRecognizer release]; 


    return col;
}

#pragma mark -
#pragma mark UIGestureRecognizer Delegate/Actions

- (BOOL) gestureRecognizerShouldBegin: (UIGestureRecognizer *) gestureRecognizer
{
    ALog(@"Drag detected");
    return YES;
}

- (void) moveActionGestureRecognizerStateChanged: (UIGestureRecognizer *) recognizer
{
    switch ( …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch drag-and-drop uitableview ipad ios4

10
推荐指数
0
解决办法
1952
查看次数

如何为F#项目/脚本的运行/调试设置Visual Studio代码?

我曾尝试使用Visual Studio Code运行一个简单的F#脚本.

我今天下载所有最新版本.我在http://ionide.io/安装了所有插件.尽管有漂亮的GIF动画显示它有效,但我无法看到make如何使用Build代码.

我创建了一个.ionide文件:

[Fake]
linuxPrefix = "mono"
command = "build.cmd"
build = "build.fsx"
Run Code Online (Sandbox Code Playgroud)

但是,如何安装假?所以,我是从xamarin做的并安装它.好的,现在我得到build.fsx:

#r "packages/FAKE.4.12.0/tools/FakeLib.dll" // include Fake lib
RestorePackages()

// Properties
let buildDir = "./build/"
let testDir  = "./test/"
let deployDir = "./deploy/"

// version info
let version = "0.2"  // or retrieve from CI server

// Targets
Target "Clean" (fun _ ->
    CleanDirs [buildDir; testDir; deployDir]
)

Target "fakeBuild" (fun _ ->
!! "./*.fsproj"
    |> MSBuildRelease buildDir "Build"
    |> Log "AppBuild-Output: "
) …
Run Code Online (Sandbox Code Playgroud)

macos f# visual-studio-code osx-elcapitan

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

如何在Xcode中为iPhone SDK构建自定义控件?

我想构建一个自定义控件,以便在我的项目中重用,该项目由两个链接在一起的UITextField +一个标签组成.

它开始变得越来越重复我的应用程序和代码重复的气味;)

但是,我想知道这里最好的方法是什么.

最好是通过控制器中的代码完成所有操作,还是可以像Xcode中内置的那样进行视觉操作?

iphone xcode objective-c

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

NSSetUncaughtExceptionHandler无法捕获iPhone上的所有错误

我正在使用http://code.google.com/p/google-toolbox-for-mac中的 GTMStackTrace .

我需要一种方法来测试最终用户在应用程序崩溃时向我发送错误.我知道如何将数据发送到我的网站,但问题是如何捕获所有未处理的错误.

我有这个代码:

void exceptionHandler(NSException *exception) {
    NSLog(@"%@", [exception reason]);
    NSLog(@"%@", [exception userInfo]);
    NSLog(@"%@", GTMStackTraceFromException(exception));

    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:NSLocalizedString(@"Error unexpected",@"Info: Can't save record")
                          message:GTMStackTraceFromException(exception) delegate:nil 
                          cancelButtonTitle:NSLocalizedString(@"Ok",@"Button: Ok") otherButtonTitles:nil];
    [alert show];
    [alert release];    
}

int main(int argc, char *argv[]) {
    //For crash report..
    NSSetUncaughtExceptionHandler(&exceptionHandler);
    //Normal code...
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}
Run Code Online (Sandbox Code Playgroud)

然而,事情不是抓了很多的错误,像一个坏的版本,一个BAD ACCES等,和App消失.我有2个问题,其中目前尚不清楚为什么happend和最终用户有没有什么要说的线索.

(例如,释放两次相同的var不能捕获)

那么,如何我得到的所有讨厌的错误,从而使最终用户简单的给我发一份崩溃报告吗?

iphone crash error-handling

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

如何制作flask/gevent.socketio服务器的python windows服务?

我有一个flask/gevent SocketIOServer,需要让它作为服务工作:

class TeleportService(win32serviceutil.ServiceFramework):
    _svc_name_ = "TeleportServer"
    _svc_display_name_ = "Teleport Database Backup Service"
    _svc_description_ = "More info at www.elmalabarista.com/teleport"

    def __init__(self, args):
        win32serviceutil.ServiceFramework.__init__(self, args)
        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)

    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        win32event.SetEvent(self.hWaitStop)

    def SvcDoRun(self):
        servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
                              servicemanager.PYS_SERVICE_STARTED, (self._svc_name_, ''))

        self.ReportServiceStatus(win32service.SERVICE_RUNNING)

        runServer()


@werkzeug.serving.run_with_reloader
def runServer():
    print 'Listening on %s...' % WEB_PORT
    ws = SocketIOServer(('0.0.0.0', WEB_PORT),
        SharedDataMiddleware(app, {}),
        resource="socket.io",
        policy_server=False)

    gevent.spawn(runTaskManager).link_exception(lambda *args: sys.exit("important_greenlet died"))

    ws.serve_forever()
Run Code Online (Sandbox Code Playgroud)

但是,我无法想象如何从SvcStop停止它,并且运行它有一个奇怪的行为,即命令行参数的服务解析在runserver被杀死之后发生.这意味着烧瓶服务器运行,我可以从Web浏览器访问,但服务管理器将其列为"未启动".例如,在命令行中运行:

C:\Proyectos\TeleportServer>python service.py uninstall <--BAD PARAM, TO MAKE IT OBVIOUS
2013-02-13 16:19:30,786 - DEBUG: Connecting to …
Run Code Online (Sandbox Code Playgroud)

python windows windows-services flask gevent-socketio

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

如何解决UITableView中的慢速滚动问题

我正在第一次在真实设备上进行测试,在解决了一些明显的性能问题之后,我仍然坚持如何平滑滚动.

这就是我做的:

  • 数据是sqlite
  • 我有一个带头的小数组
  • 我在每个标题数组中都有来自Db的Id列表

例如

标题A Ids = 1,2; 标题B Ids = 3,4

  • 我懒得加载单元格和对象来获取数据
  • 一次只能装载10件物品
  • 加载速度很快,只有滚动才是问题

这是加载单元格的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"ProductCell";

    ProductCell *cell = (ProductCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ProductCell" owner:self options:nil];

        cell = [nib objectAtIndex:0];
    }

    // Set up the cell...
    Product *p = [self locateRecord:indexPath]; 

    cell.nameLabel.text = [p.name capitalizedString];
    cell.codeLabel.text = p.ref;

    if ([self.selectedProducts objectForKey:[NSNumber numberWithInt:p.Id]]) {
        OrderDetail *d = [self …
Run Code Online (Sandbox Code Playgroud)

iphone performance objective-c

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

如何在F#中使用StructuralComparison&Equality制作.NET Mutable Dictionary <T,T>

我知道F#有MAP,但我想使用.NET Dictionary.这个字典有字符串和值作为F#值+字典,即:

type ExprC = 
    | StrC of string
    | BoolC of bool
    | IntC of int32
    | DecC of decimal
    | ArrayC of int * array<ExprC>
    | RelC of RelationC
and RelationC = Dictionary<string, ExprC>        
Run Code Online (Sandbox Code Playgroud)

现在,我想解决的问题是如何为RelationC类型提供结构相等性.如果需要封装实际存储,如何创建一个替代Dictionary的容器,将其用于可变操作并具有结构相等性?


有了当前的答案,这段代码不起作用(诅咒实现不完整,但是,这甚至没有编译):

[<CustomEquality; CustomComparison>]
type MyDict() =
    inherit Dictionary<string, ExprC>()
    override this.Equals x =
        match x with
        | :? MyDict as y -> (this = y)
        | _ -> false

    override this.GetHashCode () =
        hash this

    interface System.IComparable with
      member x.CompareTo yobj =
          match …
Run Code Online (Sandbox Code Playgroud)

f# dictionary structural-equality

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

如何在Tabbar应用中将视图旋转为横向

我有一个基于tabbar的应用程序.

我在Interface Builder中构建了2个视图,一个是纵向视图,另一个是横向模式.

现在,我想要像iPod应用程序.我想将横向视图设置为全屏,并隐藏标签栏和状态栏.

我的工作基础是:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                                duration:(NSTimeInterval)duration { 
    if (self.landscape) {
        if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
        {
            self.view = self.portrait;
            self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(360));
        }
        else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft)
        {
            self.view = self.landscape;
            self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(-90));
        }
        else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
        {
            self.view = self.landscape;
            self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
        }
        else
        {
            self.view = self.portrait;
            self.view.transform =  CGAffineTransformMakeRotation(degreesToRadian(-180));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但所有工作都很混乱.横向视图未正确填充区域,控件位于错误的位置,与首先设计的不同.

而且,我还没有找到隐藏其他一切的方法......

iphone cocoa-touch ios

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

Delphi布局管理器/表单构建器开源?

我知道优秀的DevExpress LayoutManager以及Delphi新版本中的半尝试.

但我想知道Open Source布局管理器是否确实存在,可用于替换表单编辑器.

我在Obj-C中为我的iPhone应用程序构建了一个小版本,它可以:

Form.Add(TEXT_EDIT,Options,LEFT)
Run Code Online (Sandbox Code Playgroud)

我们的想法是能够通过代码构建一切,并简化国际化,解决方案的独立性和那些东西......

delphi layout

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